常用图像去模糊算法分析与对比.doc_第1页
常用图像去模糊算法分析与对比.doc_第2页
常用图像去模糊算法分析与对比.doc_第3页
常用图像去模糊算法分析与对比.doc_第4页
常用图像去模糊算法分析与对比.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012-2013学年度第二学期数字图像处理课程设计题目: 常用图像去模糊算法分析与对比 院 系: 自动化学院 专 业: 自动化 班 级: 控实1001班 姓 名: 朱延俊 学 号: U201014240 指导教师: 谭山 报告时间: 2013.6.24 由于光学系统的装配、拍摄对焦不准或拍摄时的移动等均会使图像模糊,对诸如红外成像系统等离散成像系统,探测单元的非点元性质是图像模糊的重要原因之一,这些模糊图像一般可以用卷积过程描述。图像复原的基本问题是去模糊,即依据某种模糊和噪声降质的观测来估计原来的图像。反卷积是使模糊的图像复原的基本方法,如果成像系统的模糊函数已知,则去模糊成为常规的反卷积问题,否则,是盲解卷积问题。一般的,模糊函数是一个低通滤波器,使输入图像的高频成分收到抑制甚至丧失。反卷积是逆过程,需要恢复低频信息并找回丢失的高频成分。噪声的存在将可能使反卷积的结果偏离真实的解,因此需要在图像信号复原和噪声放大之间做出适当的折中。图像退化/复原可以用图0所示的模型来表示(g = Hf + n):图01.盲目解卷积算法(Blind Deconvolution Algorithm)图像恢复是一种改善图像质量的处理技术, 将降质了的图像恢复成原来的图像。目前, 图像恢复的方法很多, 然而在图像恢复过程中, 最难解决的问题之一是如何获得恢复算法中PSF的恰当估计, 那些不以PSF 知识为基础的图像恢复方法统称为盲去卷积算法。盲去卷积的方法已经受到了人们的极大重视, 对于给定的原图像, 使其退化, 得到退化图像, 再利用盲去卷积的方法使其恢复, 得到视觉质量上更好的图像。盲解卷积的方法是以最大似然估计(MLE )为基础的,即一种用被随机噪声所干扰的量进行估计的最优化策略。似然函数用g ( x, y )、f ( x, y ) 和h( x, y )来加以表达, 然后问题就变成了寻求最大似然函数。在盲解卷积中, 最优化问题用规定的约束条件并假定收敛时通过迭代来求解, 得到的最大f( x, y )和h (x, y )就是还原的图像和PSF。【函数】deconvblind【功能】使用盲解卷积算法对图像进行去模糊J,PSF = DECONVBLIND(I,INITPSF) deconvolves image I using maximum likelihood algorithm, returning both deblurred image J and a restored point-spread function PSF. The resulting PSF is a positive array of the same size as the INITPSF, normalized so its sum adds to 1. The PSF restoration is affected strongly by the size of its initial guess, INITPSF, and less by its values (an array of ones is a safer guess).使用盲解卷积对图像I进行去模糊,得到去模糊后的图像J和重建点扩散函数矩阵PSF。参量INITPSF为矩阵,表示重建点扩散函数矩阵的初始值。J,PSF = DECONVBLIND(I,INITPSF,NUMIT)参量NUMIT为迭代次数,默认值为10。J,PSF = DECONVBLIND(I,INITPSF,NUMIT,DAMPAR)参量DAMPAR表示输出图像与输入图像的偏离阈值,该函数对于偏离阈值的像素不再进行迭代计算,这抑制了像素上的噪声,又保存了图像的细节。J,PSF = DECONVBLIND(I,INITPSF,NUMIT,DAMPAR,WEIGHT)参量WEIGHT为矩阵,其元素为图像每个像素的权值,默认值为与输入图像相同维数的单位矩阵。J,PSF = DECONVBLIND(I,INITPSF,NUMIT,DAMPAR,WEIGHT,READOUT)参量READOUT制定噪声类型,默认值为0。【编程实现】I = checkerboard(8);%创建棋盘:为8或者30PSF = fspecial(gaussian,7,10);%设置滤波器V = .0001;BlurredNoisy = imnoise(imfilter(I,PSF),gaussian,0,V);%添加高斯噪声%迭代次数为20,输出图像与输入图像的偏离阈值为10*sqrt(V),阈值为zeros(size(I)WT = zeros(size(I);WT(5:end-4,5:end-4) = 1;INITPSF = ones(size(PSF);J P = deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT);%对图像去模糊,显示原始图像和PSF图像subplot(221);imshow(BlurredNoisy); title(Blurred and Noisy);subplot(222);imshow(PSF,); title(True PSF);%复原图像和PSF图像 subplot(223);imshow(J); title(Deblurred Image);subplot(224);imshow(P,); title(Recovered PSF);得到的图形如图1所示,可以看出同时恢复了图像和点扩张函数,在对失真情况毫无先验知识的情况下,仍能实现对模糊图像的恢复操作。利用MATLAB 实现的图像恢复, 并对恢复图像的失真情况做了改善。在进行图像恢复时,重建PSF,对图像进行重建, 得到恢复的图像。若I = checkerboard(30);则效果如图2所示。图1图22.L-R算法(Lucy-Richardson Algorithm)L-R算法假设图像服从Possion分布,采用最大似然估计进行估算,其迭代方程为该算法考虑到了物体的先验信息,无需模糊图像的噪声信息,适用于线性和非线性成像模型,解具有唯一性。在MATLAB中,L-R算法附加了一些改进,可以在多次迭代过于逼近噪声易产生错误信息斑点的情况下,使用参数来控制收敛次数,使每次过程中结果图像和原始图像的每个相应局部的背离程度的灰度值在阈值内。【函数】deconvlucy【功能】使用L-R算法对图像进行去模糊处理J = DECONVLUCY(I,PSF)deconvolves image I using Lucy-Richardson algorithm, returning deblurred image J. The assumption is that the image I was created by convolving a true image with a point-spread function PSF and possibly by adding noise.J = DECONVLUCY(I,PSF,NUMIT)J = DECONVLUCY(I,PSF,NUMIT,DAMPAR)J = DECONVLUCY(I,PSF,NUMIT,DAMPAR,WEIGHT)J = DECONVLUCY(I,PSF,NUMIT,DAMPAR,WEIGHT,READOUT)J = DECONVLUCY(I,PSF,NUMIT,DAMPAR,WEIGHT,READOUT,SUBSMPL), where【编程实现】I = checkerboard(8);%创建棋盘,8或30PSF = fspecial(gaussian,7,10);%设置滤波器V = .0001;BlurredNoisy = imnoise(imfilter(I,PSF),gaussian,0,V);%添加高斯噪声WT = zeros(size(I);%阈值为zeros(size(I)WT(5:end-4,5:end-4) = 1;%重建点扩散函数矩阵的初始值J1 = deconvlucy(BlurredNoisy,PSF);%设置输出图像与输入图像的偏离阈值为sqrt(V)J2 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V);%设置阈值为zeros(size(I)J3 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);subplot(221);imshow(BlurredNoisy); title(Blurred and Noisy);subplot(222);imshow(J1); title(deconvlucy(A,PSF);subplot(223);imshow(J2); title(deconvlucy(A,PSF,NI,DP);subplot(224);imshow(J3); title(deconvlucy(A,PSF,NI,DP,WT);当设置创建棋盘参数为8时,得到图像如图3;参数为30时,图像如图4。从下面的两张图可以看出:增加迭代次数并限制偏离阈值、限制阈值能得到更好的效果。图3图43.维纳滤波器(Wiener Filter) 维纳滤波算法是由C.W.Helstron于1967年提出的。如果假设f(x,y)和噪声n(x,y)不相关,且n(x,y)有零值,则原维纳滤波器的传递函数为:式中为的复共轭,为噪信比。【函数】【功能】使用维纳滤波器对图像去模糊J = DECONVWNR(I,PSF,NSR) deconvolves image I using the Wiener filter algorithm, returning deblurred image J. Image I can be an N-dimensional array. PSF is the point-spread function with which I was convolved. NSR is the noise-to-signal power ratio of the additive noise. NSR can be a scalar or an array of the same size as I. Specifying 0 for the NSR is equivalent to creating an ideal inverse filter.J = deconvwnr(I,PSF,NCORR,ICORR)deconvolves image I, where NCORR is the autocorrelation function of the noise and ICORR is the autocorrelation function of the original image. NCORR and ICORR can be of any size or dimension, not exceeding the original image. If NCORR or ICORR are N-dimensional arrays, the values correspond to the autocorrelation within each dimension. If NCORR or ICORR are vectors, and PSF is also a vector, the values represent the autocorrelation function in the first imension. If PSF is an array, the 1-D autocorrelation function is extrapolated by symmetry to all non-singleton dimensions of PSF. If NCORR or ICORR is a scalar, this value represents the power of the noise of the image.【编程实现】 I = checkerboard(8); subplot(221); imshow(I); title(Original Image (courtesy of MIT); % 模拟运动模糊. LEN = 21; THETA = 11; PSF = fspecial(motion, LEN, THETA); blurred = imfilter(I, PSF, conv, circular); % 模拟附加噪声. noise_mean = 0; noise_var = 0.0001; blurred_noisy = imnoise(blurred, gaussian, noise_mean, noise_var); subplot(222); imshow(blurred_noisy) title(Simulate Blur and Noise) % 在没有噪声的情况下尝试用维纳滤波器恢复. estimated_nsr = 0; wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr); subplot(223); imshow(wnr2) title(Restoration of Blurred, Noisy Image Using NSR = 0) % 用更好的信噪比估计来恢复 estimated_nsr = noise_var / var(I(:); wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr); subplot(224); imshow(wnr3) title(Restoration of Blurred, Noisy Image Using Estimated NSR);图5表示参数为8时的结果,图6表示参数为6时的结果。图5图64.约束最小乘方算法(CLS Algorithm)若已知且仅知道噪声的先验知识时,采用拉格朗日优化理论,把约束噪声极值问题变化为无约束的极值问题约束最小二乘方去模糊图像复原滤波器的传递函数为式中是拉格朗日常数,MATLAB自带函数deconvreg可指定范围(缺省)选取最优的拉氏算子;D为高通滤波平滑算子,可以抑制和消除噪声。【函数】deconvreg【功能】使用最小二乘方算法对图像去模糊【编程实现】 I = checkerboard(8); PSF = fspecial(gaussian,7,10); V = .01; BlurredNoisy = imnoise(imfilter(I,PSF),gaussian,0,V); NP = V*prod(size(I);% noise power J LAGRA = deconvreg(BlurredNoisy,PSF,NP); subplot(221);imshow(BlurredNoisy); title(A = Blurred and Noisy);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论