matlab模糊图像恢复数字图像处理.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab模糊图像恢复数字图像处理

实验六 模糊图像恢复 一、实验目的 本实验是一个综合性实验,要求学生巩固学习多个知识点和内容,主要有: 1、理解掌握运动图像的退化模型; 2、掌握维纳滤波法的原理和实现方法; 3、在不同的噪声和点扩散函数参数下进行恢复,并比较结果; 4、通过分析和实验得出相应的结论。 二、实验准备 1、运动模糊退化模型:运动模糊是图像退化的一种,可以用数学表达式刻画出来。对线性移(空)不变系统,退化模型可表示为:g(x,y)=h(x,y)*f(x,y)+n(x,y)。对匀速直线运动而言,退化图像为: 其中x0(t)和y0(t)分别表示x和y方向的运动分量。并假设退化系统是线性移不变的,光学成像过程是完善的,快门开关是瞬间完成的。 对上式进行傅立叶变换,则得频域表达式为 其中 假设景物只在x方向匀速运动,在T时间内共移动距离是a,即x0(t)=at/T,y0(t)=0,则 在Matlab中可用滤波器卷积的方法仿真出运动模糊图像。 h=fspecial(‘motion’,len,theta),表示在theta方向移动len长度,产生运动模糊的点扩散函数h。 blurred=imfilter(I,h,circular’,’conv’),产生运动模糊图像。 2、维纳滤波法恢复图像: 此方法也叫最小均方误差滤波法,是建立在图像和噪声都是随机过程,图像和噪声不相关,其中之一的均值为零,灰度估计值与退化图像中的灰度值成线性关系。其基本思想是找到原图像f(x,y)的一个估计,使得估计与原图像之间的均方误差在统计意义上最小。 其中E{.}表示数学期望,当上式取得最小值时,所得到的估计值在频域的表达式为: 其中H(u,v)是点扩散函数h(x,y)的傅里叶变换,H*(u,v)是退化函数H(u,v)的复共轭,Sn (u,v)=|N(u,v)|2、Sf(u,v)=|S(u,v)|2分别是噪声和原图像的功率谱。 而在实际当中,Sn(u,v)、Sf(u,v)未知,特别是Sf(u,v),上式无法直接运用。解决的方法之一是令Sn(u,v)/ Sf(u,v)等于某个常数k。上式就成了 在Matlab中有专门的函数可以实现维纳滤波法恢复。wn1=deconvwnr(blurred,h),参数部分有多种选择的方法,这个表示用真实的点扩散函数进行恢复。 为了对比,可取不同的参数,以及加入噪声,再恢复,噪声可用imnoise或randn函数生成。细节可参阅matlab相关资料。 三、实验内容与要求 参照以上知识点和过程仿真一幅运动模糊图像,用不同的参数,不同的噪声等情况下进行恢复,并探讨各量对恢复结果的影响。(可参照教材中插图的参数) 四、实验报告 1、提交经调试正确的程序源代码及相关文档。 2、总结调试程序时遇到的问题及解决方案。 实验程序: %%%%%两幅图片相加可以使用函数 imadd I = imread(rice.png); I = imread(rice.png); J = imread(cameraman.tif); Iplus50 = imadd(I,50); K = imadd(I,J); %%%%%%%% %h=fspecial(‘motion’,len,theta),表示在theta方向移动len长度,而产生运动模糊的点扩散函数h I = imread(I:\lena.bmp); subplot(2,2,1);imshow(I);title(Original Image——原始图像); H = fspecial(motion,20,45);%定义的运动模型 MotionBlur = imfilter(I,H,replicate); subplot(2,2,2);imshow(MotionBlur);title(Motion Blurred Image——运动模糊图像); H = fspecial(disk,10); %blurred=imfilter(I,h,circular’,’conv’),产生运动模糊图像 blurred = imfilter(I,H,replicate); subplot(2,2,3);imshow(blurred);title(Blurred Image——模糊图像); H = fspecial(unsharp); sharpened = imfilter(I,H,repli

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档