反卷积复原算法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

几种图像复原方法的对比一、Richardson-Lucy算法R-L算法是目前世界上应用最广泛的函数恢复技术之一,它是一种迭代方法。MATLAB提供的deconvlucy()函数还能够用于实现复杂图像重建的多种算法中,这些算法都基于Lucy-Richardson最大化可能性算法。R-L算法是一种迭代非线性复原算法,它是从最大似然公式推导出来的,图像用泊松分布加以模型化的。当下面这个迭代收敛时模型的最大似然函数就可以得到一个令人满意的方程:1(,)(,)(,)[(,)](,)(,)kkkgxyfxyfxyhxyhxyfxy其中,*代表卷积,代表相关,f代表未退化图像的估计,g和h和以前定义一样。在IPT中,L-R算法由名为deconvlucy的函数完成的。deconvlucy()函数的调用格式:J=deconvlucy(I,PSF,NUMIT,DAMPAR,WEIGHT)。其中,I表示输入图像,PSF表示点扩散函数。其他参数都是可选参数:NUMIT表示算法的迭代次数,默认为10次;DAMPAR是一个标量,它指定了结果图像与原图像I之间的偏离阈值表,默认值为0(无衰减);WEIGHT是一个与I同样大小的数组,它为每一个像素分配一个权重来反映其重量,表示像素加权值,默认值为原始图像的数值。图像复原源代码:%%DeblurringGrayImagesUsingtheLucy-RichardsonAlgorithmclcclearcloseallI=imread('E:\lena512color.tif');%彩色图像的像素为512*512I1=rgb2gray(I);%灰度图像的像素为512*512%figure,imshow(I),title('Originalcolorimage');%figure,imshow(I1),title('Originalgrayimage');I2=I1(1:2:end,1:2:end);%图像的像素设置为256*256figure,imshow(I2),title('GrayImage256*256');PSF=fspecial('gaussian',5,5);%点扩散函数Blurred=imfilter(I2,PSF,'symmetric','conv');figure;imshow(Blurred);title('GaussianBlurred');V=0.0001;BlurredNoisy=imnoise(Blurred,'gaussian',0,V);figure;imshow(BlurredNoisy);title('Blurred&Noisy');K=size(I2);WT=zeros(K);WT(5:end-4,5:end-4)=1;J1=deconvlucy(BlurredNoisy,PSF);%H1=deconvlucy(BlurredNoisy,PSF,5);%迭代5次%H1_cell=deconvlucy({BlurredNoisy},PSF,5);%H2_cell=deconvlucy(H1_cell,PSF);%H2=im2uint8(H2_cell{2});J2=deconvlucy(BlurredNoisy,PSF,5,im2uint8(3*sqrt(V)));%迭代5次J3=deconvlucy(BlurredNoisy,PSF,15,im2uint8(3*sqrt(V)));%迭代15次J4=deconvlucy(BlurredNoisy,PSF,25,im2uint8(3*sqrt(V)));%迭代25次J5=deconvlucy(BlurredNoisy,PSF,40,im2uint8(3*sqrt(V)));%迭代40次J6=deconvlucy(BlurredNoisy,PSF,20,im2uint8(3*sqrt(V)),WT);%迭代20次,加WTJ7=deconvlucy(BlurredNoisy,PSF,40,im2uint8(3*sqrt(V)),WT);%迭代40次,加WT%figure,imshow(J1);title('J1:deconvlucy(A,PSF)');%figure,imshow(H1);title('H1:RestoredImageNUMIT=5');%figure,imshow(H2),title('H2:RestoredImageNUMIT=15');figure,imshow(J2);title('J2:deconvlucy(A,PSF,NUMIT=5,DAMPAR)');figure,imshow(J3);title('J3:deconvlucy(A,PSF,NUMIT=15,DAMPAR)');figure,imshow(J4);title('J4:deconvlucy(A,PSF,NUMIT=25,DAMPAR)');figure,imshow(J5);title('J5:deconvlucy(A,PSF,NUMIT=40,DAMPAR)');figure,imshow(J6),title('J6:deconvlucy(A,PSF,NUMIT=20,DAMPAR,WEIGHT)');figure,imshow(J7),title('J7:deconvlucy(A,PSF,NUMIT=40,DAMPAR,WEIGHT)');二、维纳滤波维纳滤波法是由Wiener首先提出的,在图像复原领域,由于维纳滤波计算量小,复原效果好,从而得到了广泛的应用和发展。维纳滤波最开始主要应用在一维信号处理里,取得了比较不错的效果。之后,维纳滤波法也用于二维信号处理中,也取得了比较好的效果。维纳滤波器寻找一个统计误差函数:}){(22ffEe最小的估计f。E是期望值操作符,f是未退化的图像。该表达式在频域可表示为22(,)1(,)[](,)(,)(,)(,)/(,)fHuvFuvGuvHuvHuvSuvSuv其中,),(vuH表示退化函数),(),(),(2vuHvuHvuH),(vuH表示),(vuH的复共轭2),(),(vuNvuS表示噪声的功率谱2),(),(vuFvuSf表示未退化图像的功率谱比率(,)/(,)fSuvSuv称为信噪功率比。在IPT中维纳滤波使用函数deconvwnr来实现的。维纳滤波能最佳复原的条件是要求已知模糊的系统函数,噪声功率谱密(或其自相关函数),原图像功率谱密度(或其自相关函数)。但实际上,原图像功率谱密度(或其自相关函数)一般难以获知,再加上维纳滤波是将图像假设为平稳随机场的前提下的最佳滤波,而实际的图像通常不能满足此前提。因此维纳滤波复原算法在实际中只能获得次最佳实施,它更多的是具有理论价值,被用作度量其他算法性能优劣的标杆。维纳滤波复原函数deconvwnr()的调用格式:J=deconvwnr(I,PSF,NCORR,ICORR)其中,I表示输入图像,PSF表示点扩散函数,NSR(默认值为0)、NCORR和ICORR都是可选参数,分别表示信噪比、噪声的自相关函数、原始图像的自相关函数。输出参数J表示复原后的图像。维纳滤波复原源代码:%维纳滤波在图像复原中的应用clcclearcloseallI=imread('pout.tif');%原始图像noise=5*randn(size(I));%randn(1,lx)表示生成1*lx的矩阵,矩阵的每个元素都是随机数noise=noise-min(min(noise));%randn(size(I))是返回一个和A有同样维数大小的随机数组J=double(I)+noise;R1=wiener2(J,[1010]);%未知噪声R2=wiener2(J,[1010],noise);%已知噪声分布figuresubplot(2,2,1),imshow(uint8(I));title('原始图像');subplot(2,2,2),imshow(uint8(J));title('退化图像');subplot(2,2,3),imshow(uint8(R1));title('盲复原');subplot(2,2,4),imshow(uint8(R2));title('非盲复原');三、正则滤波另一个线性复原的方法称为约束的最小二乘方滤波,在IPT中称为正则滤波,并且通过函数deconvreg来实现。在最小二乘复原处理中,常常需要附加某种约束条件。例如令Q为f的线性算子,那么最小二乘方复原的问题可以看成使形式为2fQ的函数,服从约束条件22nfHg的最小化问题,这种有附加条件的极值问题可以用拉格朗日乘数法来处理。寻找一个f,使下述准则函数为最小:222)(nfHgfQfW式中叫拉格朗日系数。通过指定不同的Q,可以得到不同的复原目标。实验结果如下:正则滤波所用的源代码:clcclearcloseallI=imread('E:\lena512color.tif');subplot(321),imshow(I),title('OriginalImage');I1=rgb2gray(I);subplot(322),imshow(I1),title('GrayImage');PSF=fspecial('gaussian',7,10);V=.01;H=imfilter(I1,PSF);BlurredNoisy=imnoise(H,'gaussian',0,V);NOISEPOWER=V*prod(size(I1));[J,LAGRA]=deconvreg(BlurredNoisy,PSF,NOISEPOWER);K=deconvreg(BlurredNoisy,PSF,[],LAGRA/10);K0=deconvreg(BlurredNoisy,PSF,[],LAGRA*10);subplot(323),imshow(BlurredNoisy);title('A=BlurredandNoisy');subplot(324),imshow(J);title('[JLAGRA]=deconvreg(A,PSF,NP)');subplot(325);imshow(K);title('deconvreg(A,PSF,[],0.1*LAGRA)');subplot(326);imshow(K0);title('deconvreg(A,PSF,[],10*LAGRA)');四、盲反卷积在图像复原过程中,最困难的问题之一是,如何获得PSF的恰当估计。那些不以PSF为基础的图像复原方法统称为盲去卷积。它以MLE为基础的,即一种用被随机噪声所干扰的量进行估计的最优化策略。工具箱通过函数deconvblind来执行盲区卷积。实验如下:%%盲反卷积图像复原clcclearcloseallI=imread('E:\lena512color.tif');subplot(321),imshow(I),title('OriginalImage');I=rgb2gray(I);subplot(322),imshow(I),title('GrayImage');PSF=fspecial('gaussian',7,10);%PSF=7x7V=.0001;BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);BlurredNoisy=double(BlurredNoisy);WT=zeros(size(I));WT(5:end-4,5:end-4)=1;%从第五行到倒数第五行,第五列到倒数第五列全部置为1INITPSF=ones(size(PSF));%INITPSF=ones(7x7)FUN=inline('PSF+P1','PSF','P1');[J,P]=deconvblind(BlurredNoisy,INITPSF,5,10*sqrt(V),WT,FUN,0);%迭代

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功