【图像处理】MATLAB:仅有噪声的复原(空间滤波)

空间噪声滤波器

  若出现的退化仅仅是噪声,则遵循模型:g(x,y) = f(x,y) + η(x,y),此时所选的降低噪声的方法是空间滤波。

  这里用到的函数为自定义的spfilt函数,适用于不考虑图像特性在不同位置之间的差异的图像。由于代码过长,具体函数贴在本文的末尾以供参考。

代码示例

% 胡椒噪声
f = imread('ckt-board-orig.tif');           
[M,N] = size(f);
R = imnoise2('salt & pepper',M,N,0.1,0);
c = find(R==0);
gp = f;
gp(c) = 0;

% 盐粒噪声
R = imnoise2('salt & pepper',M,N,0,0.1);   
c = find(R==1);
gs = f;
gs(c) = 255;

% 过渡胡椒噪声的较好方法是使用Q为正值的反调和滤波器
fp = spfilt(gp,'chmean',3,3,1.5);

% 过渡盐粒噪声的较好方法是使用Q为负值的反调和滤波器
fs = spfilt(gs,'chmean',3,3,-1.5);

% 使用最大和最小滤波器可以得到类似的结果
fpmax = spfilt(gp,'max',3,3);
fsmin = spfilt(gs,'min',3,3);

subplot(3,2,1);imshow(gp);title('仅被胡椒噪声污染');
subplot(3,2,2);imshow(gs);title('仅被盐粒噪声污染');
subplot(3,2,3);imshow(fp);title('Q=1.5反调和滤波器处理胡椒噪声');
subplot(3,2,4);imshow(fs);title('Q=-1.5反调和滤波器处理盐粒噪声');
subplot(3,2,5);imshow(fpmax);title('最大滤波器处理胡椒噪声');
subplot(3,2,6);imshow(fsmin);title('最小滤波器处理盐粒噪声');

运行结果


自适应空间滤波器

  设计一个自适应中值滤波器,从而可以通过根据被滤波区域的图像特性自适应的滤波器来改进结果。详细说明的算法如下所示:

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值