- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fr1=deconvwnr(C,PSF); sn=abs(fft2(noise).^2); % noise power spectrum nA=sum(sn(:))/prod(size(noise)); % noise average power sf=abs(fft2(A)).^2 % image power spectrum fA=sum(sf(:))/prod(size(A)); % image average power R=nA/fA; fr2=deconvwnr(C,PSF,R); NCORR=fftshift(real(ifft2(sn))); ICORR=fftshift(real(ifft2(sf))); fr3=deconvwnr(C,PSF,NCORR,ICORR); figure(2); subplot(2,2,1);imshow(uint8(C),[]);title(模糊噪声图像); subplot(2,2,2);imshow(uint8(fr1),[]);title(直接逆滤波); subplot(2,2,3);imshow(uint8(fr2),[]);title(常数比率维纳滤波); subplot(2,2,4);imshow(uint8(fr3),[]);title(使用自相关函数的维纳滤波); 2)三种滤波方式复原图像 五 经典复原方法之二——维纳滤波 (Wiener Filtering) 维纳滤波是维纳在1949年提出的,并应用于一维平稳时间序列,获得了满意的结果。这是最早也是最著名的线性滤波技术。 维纳滤波是指是复原的图像和原图像之间的均方误差最小的滤波器,其基本思想是寻找图像f(x,y)的一种估值f’(x,y),使得这两者之间的均方误差最为小。维纳滤波也称为最小均方误差滤波(Minimum Mean Square Error Filtering)。 Wiener Filtering 维纳滤波需要假定下述条件成立: 系统为线性空间平移不变系统 退化图像、原始图像、噪声都是均匀随机场,噪声的均值为零,且与图像不相关。维纳滤波的复原滤波函数,即滤波器的传递函数为: Wiener Filtering 没有噪声时,维纳滤波退化为逆滤波 有噪声时,维纳滤波利用信噪功率比对恢复过程进行修正,在信噪功率比很小的区域内,P(u,v)的值也很小,这使恢复图像较小地依赖于退化图像。在H(u,v)很小或等于零时,P(u,v)的分母不为零,维纳滤波没有病态问题。 在实际系统中,为退化图像的功率谱很少是已知的,所以经常用下式近似估计复原函数 式中K是根据信噪比的某种先验知识适当确定的常数。 MATLAB中,维纳滤波是使用函数deconvwnr来实现的,函数deconvwnr有三种可能的语法形式: 第一种语法形式:fr=deconvwnr(g,PSF) 假设噪信比为零,这种形式就是逆滤波器 第二种语法形式:fr=deconvwnr(g,PSF,NSPR) 假设噪信功率比已知,或是个常量或是个数组。这是用于实现参数维纳滤波器的语法。 第三种语法形式: fr=deconvwnr(g,PSF,NACORR,FACORR) 假设噪声和未退化图像的自相关函数NACORR和FACORR是已知的 相关定理: 例题:在一幅测试版图像中加入运动模糊和高斯噪声,产生一幅退化图像,采用deconvwnr函数实现逆滤波及维纳滤波。 % 产生一幅退化的测试板图像及其复原 f=checkerboard(8); PSF=fspecial(motion,7,45); gb=imfilter(f,PSF,circular); noise=imnoise(zeros(size(f)),gaussian,0,0.001); g=gb+noise; subplot(421);imshow(f,[]);title(原图像); subplot(422);imshow(gb,[]);title(模糊图像); subplot(423);imshow(noise,[]);title(噪声图像); subplot(424);imshow(g,[]);title(模糊图像+噪声图像); % 逆滤波 fr1=deconvwnr(g,PSF); subplot(425);imshow(fr1,[]);title(逆滤波结果); %使用常数比率的维纳滤波 Sn=abs(fft2(noise)).^2; nA=sum(Sn(:))/prod(size(noise)); Sf=abs(fft2(f)).^2; fA
文档评论(0)