基于维纳滤波的图像复原算法
2017-08-18 17:54
260 查看
维纳滤波也称最小均方误差滤波,它能处理被退化函数退化和噪声污染的图像。该滤波方法建立在图像和噪声都是随机变量的基础之上,目标是找到未污染图像I(x,y)的一个估计。
clear all;clc; I = imread('Lena.tif'); I=im2double(I); noise = 0.1*randn(size(I)); % PSF = fspecial('motion',21,11); PSF = fspecial('gaussian',[5,5],0.05); Blurred = imfilter(I,PSF,'circular'); BlurredNoisy = Blurred + noise; %求NSR方法一 %NSR = sum(noise(:).^2)/sum(I(:).^2);% 噪声功率比 NP = abs(fftn(noise)).^2;%噪声功率 NCORR = fftshift(real(ifftn(NP)));% 噪声自相关(噪声功率谱) IP = abs(fftn(I)).^2;% 原始图像的功率 ICORR = fftshift(real(ifftn(IP)));%图像自相关(图像功率谱) NPOW = sum(NP(:))/prod(size(noise)); IPOW = sum(IP(:))/prod(size(I)); %求NSR方法二 NSR = NPOW/IPOW; ICORR1 = ICORR(:,ceil(size(I,1)/2)); subplot(221);imshow(BlurredNoisy,[]); title('A = Blurred and Noisy'); subplot(222);imshow(deconvwnr(BlurredNoisy,PSF,NSR),[]); title('deconvwnr(A,PSF,NSR)'); subplot(223);imshow(deconvwnr(BlurredNoisy,PSF,NCORR,ICORR),[]); title('deconvwnr(A,PSF,NCORR,ICORR)'); subplot(224);imshow(deconvwnr(BlurredNoisy,PSF,NPOW,ICORR1),[]); title('deconvwnr(A,PSF,NPOW,ICORR_1_D)');
相关文章推荐
- 图像算法之十一:双边滤波
- 基于Qt的图像处理技术和算法
- 神奇的图像处理算法
- OpenCV中的图像修复算法
- 图像比对算法
- DM8127/DM8148图像算法移植
- 【图像算法】SIFT中LoG和DoG比较
- opencv实现图像任意角度旋转的算法解析及代码实现
- 最简单的分形图像生成算法
- 图像插值算法--最邻近、双线性、双三次插值
- 数字图像去噪典型算法及matlab实现
- 图像缩放算法
- 图像处理之简单脸谱检测算法(Simple Face Detection Algorithm)
- 图像缩放函数,算法:双线型内插值算法
- 图像处理(验证码识别)程序中常用算法
- 利用代间差分遗传算法优化分形图像编码速度
- meanshift算法图解以及在图像聚类、目标跟踪中的应用
- 图像旋转算法原理
- 神奇的图像处理算法
- 图像算法工程师 成长之路