MATLAB中图像高斯噪声添加与维纳滤波处理

clear all; close all;
I = imread('coins.png');
I = im2double(I);
J = imnoise(I, 'gaussian', 0, 0.01);
K = wiener2(J, [5 5]);
figure;
subplot(131);
imshow(I);
title('Original Image');
subplot(132);
imshow(J);
title('Gaussian Noisy Image');
subplot(133);
imshow(K);
title('Wiener Filtered Image');

解释:

  • clear all; close all;:清空工作空间中的所有变量并关闭所有图形窗口。

  • I = imread('coins.png');:读取名为coins.png的图像,并赋值给I

  • I = im2double(I);:将图像I的数据类型转换为双精度浮点数,以便进行后续处理。

  • J = imnoise(I, 'gaussian', 0, 0.01);:在图像I上添加高斯噪声,均值为0,方差为0.01。

  • K = wiener2(J, [5 5]);:使用wiener2函数对噪声图像J应用维纳滤波,滤波器的邻域大小为5x5。维纳滤波是一种自适应滤波器,它考虑了噪声的特性来恢复图像的细节。

  • figure;:创建一个新的图形窗口。

  • subplot(131); imshow(I);:在第一个子图(1,3,1)中显示原始图像I

  • subplot(132); imshow(J);:在第二个子图(1,3,2)中显示添加了高斯噪声的图像J

  • subplot(133); imshow(K);:在第三个子图(1,3,3)中显示维纳滤波后的图像K

拓展:

  1. 保存滤波后的图像:可以将维纳滤波后的图像K保存为文件。
% 保存维纳滤波后的图像
imwrite(uint8(K), 'coins_wiener_filtered.png');
  1. 尝试不同的滤波器参数:可以尝试使用不同的维纳滤波器参数,如不同的噪声方差估计或邻域大小,来观察滤波效果的变化。

  2. 分析滤波效果:可以分析滤波前后图像的质量,比如通过计算图像的峰值信噪比(PSNR)来评估滤波效果。

  3. 创建交互式滤波器选择:可以创建一个交互式界面,允许用户选择不同的滤波器参数,并实时查看滤波效果。

  4. 应用其他图像恢复技术:可以尝试使用其他图像恢复技术,如逆滤波、同态滤波等,来比较不同的恢复效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯弗的撒旦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值