高斯滤波去噪MATLAB代码
时间: 2023-08-22 12:10:28 浏览: 106
以下是使用高斯滤波器进行图像去噪的MATLAB代码示例:
```matlab
% 读取原始图像
originalImage = imread('input_image.jpg');
% 将图像转换为灰度图像
grayImage = rgb2gray(originalImage);
% 添加高斯噪声(可选)
noisyImage = imnoise(grayImage, 'gaussian', 0, 0.01);
% 定义高斯滤波器参数
filterSize = [5 5]; % 滤波器尺寸
sigma = 2; % 方差,控制滤波器的平滑程度
% 应用高斯滤波器进行去噪
filteredImage = imgaussfilt(noisyImage, sigma, 'FilterSize', filterSize);
% 显示结果
subplot(1, 2, 1);
imshow(noisyImage);
title('Noisy Image');
subplot(1, 2, 2);
imshow(filteredImage);
title('Denoised Image');
```
在上述代码中,首先读取原始图像并将其转换为灰度图像。然后,可以选择添加高斯噪声(这里使用`imnoise`函数,可以根据需要调整噪声的强度)。接下来,定义高斯滤波器的尺寸和方差。最后,使用`imgaussfilt`函数将高斯滤波器应用于噪声图像,得到去噪后的图像。
`imgaussfilt`函数是MATLAB的图像处理工具箱中提供的函数,用于实现高斯滤波。它可以接受多个参数,包括待滤波图像、滤波器的标准差(方差)、滤波器尺寸等。通过调整方差和滤波器尺寸,可以控制滤波器的平滑程度。
最后,使用`imshow`函数显示原始图像、噪声图像和去噪后的图像。
希望以上代码能帮助到你。如果还有其他问题,请随时提问。
阅读全文