高斯滤波去除噪声matlab代码
时间: 2023-10-26 08:07:39 浏览: 55
以下是高斯滤波去除噪声的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代码如下:
```matlab
function filtered_image = gaussian_filter(image, sigma)
h = fspecial('gaussian', [5, 5], sigma); % 生成高斯滤波器
filtered_image = imfilter(image, h, 'replicate'); % 对图像进行高斯滤波操作
end
```
在这段代码中,我们定义了一个名为gaussian_filter的函数,它接受两个参数:image表示输入的图像,sigma表示高斯函数的标准差。首先,我们使用fspecial函数生成一个5x5的高斯滤波器h,其中sigma表示高斯函数的标准差。然后,我们使用imfilter函数对输入的图像image进行高斯滤波操作,'replicate'参数表示在图像边缘处采用复制的方式填充。
使用这段Matlab代码,可以方便地对图像进行高斯滤波处理。比如,我们可以通过调整sigma的数值来改变滤波器的大小,从而实现不同程度的平滑效果。这样可以在图像处理中去除噪声,使图像更加清晰和细致。
高斯滤波去噪matlab代码
以下是一个简单的高斯滤波去噪的matlab代码示例:
```matlab
% 读取图像
img = imread('lena.jpg');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 设计高斯滤波器
hsize = 3; % 滤波器大小
sigma = 1; % 标准差
h = fspecial('gaussian', hsize, sigma);
% 对图像进行滤波
filtered_img = imfilter(noisy_img, h);
% 显示图像
subplot(1, 3, 1);
imshow(img);
title('原图');
subplot(1, 3, 2);
imshow(noisy_img);
title('加噪后');
subplot(1, 3, 3);
imshow(filtered_img);
title('去噪后');
```
在这个示例中,我们首先从文件中读取了一张图像,然后使用`imnoise`函数给它添加了一些高斯噪声。接着,我们使用`fspecial`函数生成了一个高斯滤波器,并使用`imfilter`函数将滤波器应用到了加噪图像上,得到了去噪后的图像。最后,我们使用`subplot`和`imshow`函数将三张图像分别显示在了一个画布上,方便我们对比它们的差异。