matlab图像滤除高斯噪声
时间: 2024-01-12 08:04:54 浏览: 66
以下是使用Matlab实现均值滤波去除高斯噪声的示例代码:
```matlab
% 读取图像
image = imread('image.jpg');
% 添加高斯噪声
noisy_image = imnoise(image, 'gaussian', 0, 0.01);
% 定义滤波器大小
filter_size = 3;
% 使用均值滤波器去除噪声
filtered_image = imfilter(noisy_image, fspecial('average', filter_size));
% 显示原始图像和去噪后的图像
subplot(1, 2, 1), imshow(noisy_image), title('Noisy Image');
subplot(1, 2, 2), imshow(filtered_image), title('Filtered Image');
```
这段代码首先读取图像,然后使用`imnoise`函数向图像添加高斯噪声。接下来,定义了滤波器的大小,这里使用了3x3的均值滤波器。最后,使用`imfilter`函数对添加了噪声的图像进行滤波处理,得到去噪后的图像。最后,使用`subplot`和`imshow`函数将原始图像和去噪后的图像显示在一个图像窗口中。
相关问题
matlab均值滤波去除高斯噪声
在Matlab中,可以使用以下代码进行均值滤波去除高斯噪声:
```matlab
% 生成高斯噪声图像
I = im2double(imread('lena.png')); % 读取图像
J = imnoise(I,'gaussian',0,0.01); % 添加高斯噪声,标准差为0.01
% 均值滤波
K = imfilter(J,fspecial('average',[3 3])); % 3x3均值滤波
% 显示图像
figure;
subplot(1,3,1); imshow(I); title('原始图像');
subplot(1,3,2); imshow(J); title('添加高斯噪声后的图像');
subplot(1,3,3); imshow(K); title('去噪后的图像');
```
在上述代码中,使用了 `imnoise` 函数生成高斯噪声图像,标准差为0.01。然后使用 `imfilter` 函数进行3x3的均值滤波。最后,使用 `subplot` 和 `imshow` 函数将原始图像、添加噪声后的图像、去噪后的图像显示在同一个窗口中。
matlab估计图像高斯噪声的噪声水平并滤除高斯噪声
可以使用MATLAB中的"imnoise"函数添加高斯噪声,并使用"fspecial"函数创建高斯滤波器。然后使用"imfilter"函数进行滤波处理。
以下是代码示例:
```matlab
% 读入图像
img = imread('image.jpg');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01); % 0.01为方差
% 估计噪声水平
noise_level = std2(noisy_img);
% 创建高斯滤波器
h = fspecial('gaussian', [3 3], noise_level);
% 进行滤波处理
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"函数添加高斯噪声,然后使用"std2"函数计算噪声水平,接着使用"fspecial"函数创建高斯滤波器,最后使用"imfilter"函数对图像进行滤波处理。最终结果可以使用"imshow"函数进行显示。
阅读全文