【数字图像处理Matlab】- 实验二:图像噪声及图像复原

2.1 编程实现:复原由运动模糊+高斯噪声造成的退化图像,对比逆滤波、维纳滤波以及最小二乘方滤波方法。

代码如下:

I = imread('005.bmp');
I = im2double(I);
subplot(3, 3, 1),imshow(I),title('原始图像');
IG = rgb2gray(I);
subplot(3, 3, 2),imshow(IG),title('灰度图像');
len = 30;
theta = 45;
PSF = fspecial('motion',len,theta);
MF = imfilter(IG,PSF,'circular');
subplot(3, 3, 3),imshow(MF),title('运动模糊图像');
noise = imnoise(zeros(size(MF)),'gaussian',0,0.0001);
MFN = MF + noise;
subplot(3, 3, 4),imshow(MFN,[]),title('增加高斯噪声');
NSR = sum(noise(:).^2)/sum(MFN(:).^2);
subplot(3, 3, 5),imshow(deconvwnr(MF,PSF),[]),title('无噪声图片逆滤波复原');
subplot(3, 3, 6),imshow(deconvwnr(MFN,PSF),[]),title('有噪声图片逆滤波复原');
subplot(3, 3, 7),imshow(deconvwnr(MFN,PSF,NSR),[]),title('维纳滤波复原');
[H,W] = size(MF);
y = H*W*0.0001;
subplot(3, 3, 8),imshow(deconvreg(MFN,PSF,y/3),[]),title('约束最小二乘方滤波复原');

实验结果:

在这里插入图片描述

2.2 编程实现:复原由噪声引起的退化图像。

代码:

IG = imread('image5-IG.bmp'); 
subplot(2, 3, 1),imshow(IG),title('原始图像');
IN = imnoise(IG,'salt & pepper',0.2);
subplot(2, 3, 2),imshow(IN),title('椒盐噪声');
INt = double(IN)/255;
subplot(2, 3, 3),imshow(medfilt2(INt,'symmetric')),title('中值滤波');
subplot(2, 3, 4),imshow(ordfilt2(INt,median(1:3*3),ones(3,3),'symmetric')),title('中点滤波');
subplot(2, 3, 5),imshow(ordfilt2(INt,1,ones(3,3))),title('最小值滤波');
subplot(2, 3, 6),imshow(ordfilt2(INt,9,ones(3,3))),title('最大值滤波');

实验结果:

在这里插入图片描述

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值