高斯滤波去除噪声matlab代码
时间: 2023-10-26 16:07:39 浏览: 113
以下是高斯滤波去除噪声的Matlab代码:
```matlab
% 读入图像
img = imread('image.jpg');
% 定义高斯滤波器的标准差和大小
sigma = 2;
hsize = ceil(3*sigma)*2+1;
% 创建高斯滤波器
h = fspecial('gaussian', hsize, sigma);
% 对图像进行高斯滤波
img_filtered = imfilter(img, h);
% 显示原始图像和去噪后的图像
subplot(1,2,1); imshow(img); title('Original Image');
subplot(1,2,2); imshow(img_filtered); title('Filtered Image');
```
在上述代码中,`imread`函数用于读入图像,`fspecial`函数用于创建高斯滤波器,`imfilter`函数用于对图像进行高斯滤波,`subplot`函数用于显示原始图像和去噪后的图像。
相关问题
对具有高斯噪声的图像进行高斯滤波matlab代码
以下是对具有高斯噪声的图像进行高斯滤波的 Matlab 代码:
```matlab
% 读入图像
img = imread('noisy_image.jpg');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 定义高斯滤波器
G = fspecial('gaussian', [5 5], 2);
% 对图像进行高斯滤波
filtered_img = imfilter(noisy_img, G, 'same');
% 显示原始图像、带噪声的图像和滤波后的图像
subplot(1,3,1);
imshow(img);
title('Original Image');
subplot(1,3,2);
imshow(noisy_img);
title('Noisy Image');
subplot(1,3,3);
imshow(filtered_img);
title('Filtered Image');
```
代码中,`imread` 函数用于读入原始图像,`imnoise` 函数用于添加高斯噪声,`fspecial` 函数用于定义高斯滤波器,`imfilter` 函数用于对图像进行高斯滤波,`subplot` 和 `imshow` 函数用于显示原始图像、带噪声的图像和滤波后的图像。
数据的高斯滤波matlab代码实现
在 MATLAB 中,可以使用 `smoothdata` 函数来进行数据的高斯滤波。以下是一个 MATLAB 代码示例:
```matlab
% 生成示例数据
x = linspace(0, 10, 100);
y = sin(x) + randn(size(x)) * 0.1;
% 进行高斯滤波
y_filtered = smoothdata(y, 'gaussian', 10);
% 绘制原始数据和滤波后的数据
plot(x, y, 'b-', x, y_filtered, 'r-');
legend('Original', 'Filtered');
```
在这个示例中,我们首先生成了一个包含噪声的正弦曲线,然后使用 `smoothdata` 函数对其进行高斯滤波。该函数的第二个参数 `'gaussian'` 指定了使用高斯滤波,第三个参数 `10` 指定了高斯函数的标准差。最后,我们使用 `plot` 函数将原始数据和滤波后的数据绘制在同一个图像中,以便比较它们的差异。
阅读全文