simulink 在图像处理中的应用_第1页
simulink 在图像处理中的应用_第2页
simulink 在图像处理中的应用_第3页
simulink 在图像处理中的应用_第4页
simulink 在图像处理中的应用_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

1、Simulink视频和图像处理模块,1 视频和图像处理模块集 1.1 视频和图像处理模块集概述 视频和图像处理模块集V2.6共有70多个子模块,分成11大类模块 。 各大类模块如右图所示:,2011-03,2,1.2 分析和增强(Analysis % coins.png是一幅MATLAB自带的样图。 B= imnoise(A,salt (2) 打开视频和图像处理模块集,新建Simulink模型。 (3) 在新建模型窗口中加入所需模块,各模块名称、数量、来源如表3所示,模块放置位置可参考下页中示意图。,(4) 双击模型窗口中的各模块,对其进行参数设置: Image From Workspace模

2、块:Main面板中的Value参数设置为A; Image From Workspace1模块:Main面板中的Value参数设置为B; Median Filter模块:各参数均采用默认设置; (5) 连接各模块,如下页图所示。,表3 例3所用模块列表,(6) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。,例3 仿真框图,(7) 保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,中图为加入椒盐噪声后的图像,右图是经Median Filter模块处理后的图像。 对比三

3、幅图像可以看出,加入椒盐噪声后的图像经过Median Filter模块进行图像平滑处理后,椒盐噪声被去除,同时其余的图像细节也被平滑。,2.3 图像锐化增强 图像锐化处理一般通过高通滤波实现。获取的主要视觉效果是增强图像边缘,补偿图像轮廓,使原来模糊的图像变得清晰。 【例4】 用FIR滤波器2-D FIR Filter模块进行图像锐化处理。 操作步骤: (1) 先读入一幅RGB图像。在MATLAB命令窗口中输入以下命令: I= im2double(imread(peppers.png); % peppers.png是MATLAB自带样图。 (2) 打开视频和图像处理模块集,新建Simulink

4、模型。 (3) 在新建模型窗口中加入所需模块,各模块名称、数量、来源如表4所示,模块放置位置可参考后页的仿真框图。,(4) 双击模型窗口中的各模块,对其进行参数设置: Image From Workspace模块:Main面板中的Value参数设置为I,Image signal 参数设置为Separate color signals; Color Space Conversion模块:Conversion 参数设为RGB to YCbCr(默认设置),Image signal 参数设为Separate color signals; 2-D FIR Filter模块:将Main面板中的Coeff

5、icients 参数设置为fspecial(unsharp)以建立二维高通滤波器,Output size 参数设为Same as input port I,Padding options 参数设为Symmetric,Filtering based on 参数设为Correlation。,表4 例4所用模块列表, Color Space Conversion1模块:Conversion 参数设为YCbCr to RGB,Image signal 参数设为Separate color signals; 两个Video Viewer模块:均将Image signal参数设为 Separate col

6、or signals。 (5) 按下图所示连接各模块。,例4仿真框图,(6) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。 (7) 保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为经2-D FIR Filter模块锐化后的图像。 对比两幅图像可以看出,原始图像经过高通滤波器进行图像锐化处理后,图像中物品的轮廓更加明显,图像显得更加清晰了。,3 图像的几何变换 3.1 图像的旋转 图像的旋转可通过几何变换模块库中的Rotate模块实现。 【例5】 用Rota

7、te模块将图像逆时针旋转45角。 操作步骤: (1) 打开视频和图像处理模块集,新建Simulink模型。 (2) 在新建模型窗口中加入如下表所示的各个模块,模块放置位置可参考下页所示模块连接图。,表5 例5所用模块列表,(3) 双击模型窗口中的各模块,对其进行参数设置: Image From File模块:Main面板中的File name参数设置为autumn.tif; Rotate模块:Main面板中的Angle (radians)参数设置为pi/4;(即45角) (4) 按下图所示连接各模块。,(5) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Sol

8、ver设为Discrete (no continuous states)。 (6) 保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为经Rotate模块旋转45后的图像。,3.2 图像的切变 几何变换模块库中的Shear模块提供了水平和垂直两个方向的线性切变功能。 【例6】 用Shear模块完成图像的水平切变。 操作步骤: (1) 打开视频和图像处理模块集,新建Simulink模型。 (2) 在新建模型窗口中加入如下表所示的各个模块,模块放置位置可参考下页所示的模块连接图。,(3) 双击模型窗口中的各模块,按自已的需要对其进行参数设置: Image From File模

9、块:Main面板中的File name参数设置为office_4.jpg; Shear模块:Main面板中的Shear direction参数设置为Horizontal(默认设置);Row/column shear values first last 设置为100 0; (4) 按下图所示连接各模块。,(5) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。 (6) 保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为经Shear模块进行水平切变后的图像。 可以看

10、出,按照本例中Shear模块设置的偏移量参数100 0,目标图像首行像素被移动到水平右偏100像素的位置,其余各行的偏移量线性递减,至最后一行偏移量为0,以此构成切变效果。,3.3 图像的缩放 利用几何变换模块库中的Resize模块,可方便地实现图像缩放功能。 【例7】 用Resize模块缩小图像。 操作步骤: (1) 打开视频和图像处理模块集,新建Simulink模型。 (2) 在新建模型窗口中加入如表7所示的各个模块,模块放置位置可参考下页中所示图。,表7 例7所用模块列表,(3) 双击模型窗口中的各模块,按自已的需要对其进行参数设置: Image From File模块:Main面板中的

11、File name参数设置为pears.png; Resize模块:Main面板中的Resize factor in %参数设置为30 30; (4) 按下图所示连接各模块。,(5) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。 (6) 保存模型文件,并运行该仿真。运行结果如图所示。其中左图为原始大小图像,右图为经Resize模块进行缩小后的图像。为观察图像的真实大小,可在Video Viewer的界面上选择Axes菜单下的Set Display To True Size菜单项,也

12、可通过右键单击图像来选择该项菜单。 两图比较可以看出,按照本例中设置的缩放百分比参数30 30,大小原为486732的图像,其行列像素数均缩小成原来的30%后,图像大小变成了146220。,3.4 图像的裁切 利用工具(Utilities)模块库中的Variable Selector模块或Simulink的Signal Routing模块库的Selector模块,都可以实现图像裁切功能。 【例8】 用Variable Selector模块裁切图像,取得图像中的一部分。 操作步骤: (1) 打开视频和图像处理模块集,新建Simulink模型。 (2) 在新建模型窗口中加入如表8所示的各个模块,模

13、块放置位置可参考后页中的模块连接图。,(3) 双击模型窗口中的各模块,对其进行参数设置: Image From File模块:Main面板中的File name参数设置为coins.png; Variable Selector模块:Number of input signals参数设置为1,Select参数设置为Columns; Variable Selector1模块:Number of input signals参数设置为1,Select参数设置为Rows; 两个 Constant模块:Main面板中的Constant value参数均设置为50 :150。 (4) 按下页图所示连接各模块

14、。,表8 例8所用模块列表,(5) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。,(6) 保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为裁切后的图像。为观察图像的真实大小,可在Video Viewer的界面上选择Axes菜单下的Set Display To True Size菜单项,也可右键单击图像来选择。 比较两图可以看出,按照本例中设置的行列裁留参数50:150,原始大小为246300的图像,行列方向均只留下从50到150像素的部分,其余部分被裁掉,

15、图像大小也变成了101101。,4 图像的形态学操作 数学形态学是计算机数字图像处理中的一个重要研究领域,主要用于获取图像目标的形状特征,在对图像目标进行定量描述与分析的应用领域中发挥了重要的作用。 形态学最基本的运算是膨胀和腐蚀,利用膨胀和腐蚀运算可以组成开启和闭合等其它形态学运算,为图像识别等领域提供数学运算支持。,【例9】 用形态学方法分析计算MATLAB自带的一幅硬币图像里的硬币数量。 任务与思路: MATLAB自带图像文件中有一个coins.png文件,即例8中所使用的图像,该图像是一幅灰度图,现在希望计算机能自行计算该图像中所含硬币的数量。在Simulink中的操作思路是:先把灰度

16、图转为二值图像,然后利用形态学开启运算对二值图进行处理,再用Label模块对目标进行计数。 具体操作步骤: (1) 打开视频和图像处理模块集,新建Simulink模型。 (2) 在新建模型窗口中加入如表9所示的各个模块。,(3) 双击模型窗口中的各模块,对其进行参数设置: Image From File模块:Main面板中的File name参数设置为coins.png; Autothreshold模块:Main面板中的Scale threshold选项前打勾,将其下的Threshold scaling factor参数设置为0.9; 两个Label模块:Output参数都设置为Number

17、of labels;,表9 例9所用模块列表,(4) 按下图所示连接各模块。 (5) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。,(6) 保存模型文件,并运行该仿真。运行的图像输出结果如下图所示。其中左图为原始灰度图像,中图为由灰度转为二值图后的图像,右图为执行了形态学开启操作后的图像。运行的计数结果如图38中Display模块上显示的数字所示。 由结果可以看出,由于原图中有一个硬币的颜色接近背景颜色,因此在将灰度图转为二值图像后,在该位置出的现的白色目标区域被划分成多块,这时如

18、果直接对该图进行目标计数,得到的结果为12(如前页图所示),是错误的结果;在经过对该图再进行形态学开启操作后,该区域被连通,这时再进行目标计数,就得到正确的结果10。,5 图像的恢复操作 图像的恢复是数字图像处理中常用的处理方法,就是要尽可能恢复在传输或记录过程中,由于成像系统、传输介质或接收设备不完善,导致质量变坏的图像的原来面目。 常见的恢复模型如下图表示:,图42 恢复模型原理框图,1 利用函数恢复图像 MATLABR2008b图像处理工具箱中有4个图像恢复函数, 如表10所示。,表10 图像恢复函数列表,2 用 Wiener 滤波器进行恢复 用deconvwnr 函数,采用 Wiene

19、r 滤波器,在图像的频率特征和附加噪声已知的情况下,采用 Wiener 进行图像恢复比较有效。 【例10】Deconvwnr函数应用举例: 具体操作步骤: (1)在MATLAB主界面下点击filenewblank M-file,在新建的M文件里输入如下程序(以下程序编写步骤类似,故省略,直接给出参考程序)。,(2)参考程序: I = checkerboard(8); noise = 0.1*randn(size(I); PSF = fspecial(motion,21,11); Blurred = imfilter(I,PSF,circular); BlurredNoisy = im2uint

20、8(Blurred + noise); % 噪声功率比 NSR = sum(noise(:).2)/sum(I(:).2);%对信噪比参数NSR进行设置。 %噪声功率,NP = abs(fftn(noise).2; NPOW = sum(NP(:)/prod(size(noise); % 噪声的自相关函数 NCORR = fftshift(real(ifftn(NP); %原始图像功率 IP = abs(fftn(I).2; IPOW = sum(IP(:)/prod(size(I);,%原始图像的自相关函数 ICORR = fftshift(real(ifftn(IP); ICORR1 =

21、ICORR(:,ceil(size(I,1)/2); %噪声功率比 NSR = NPOW/IPOW; subplot(221);imshow(BlurredNoisy, );%显示加噪以后的退化图像。 title(A = Blurred and Noisy);,subplot(222);imshow(deconvwnr(BlurredNoisy,PSF,NSR), ); %噪声功率比NSR作为参数选项滤波。 title(deconvwnr(A,PSF,NSR); subplot(223);imshow(deconvwnr(BlurredNoisy,PSF,NCORR,ICORR), ;%噪声和

22、原始图像自相关函数NCORR 和ICORR作为参数选项滤波。 title(deconvwnr(A,PSF,NCORR,ICORR); subplot(224);imshow(deconvwnr(BlurredNoisy,PSF,NPOW,ICORR1), );%噪声功率和原始图像自相关函数ICORR1作为参数选项滤波。 title(deconvwnr(A,PSF,NPOW,ICORR_1_D);,(3)程序编写完成以后,在主菜单栏中选择DebugSave File and Run,如果编译过程中出现错误,则在MATLAB的command window中显示错误行,若没有,即可显示运行结果,如4

23、3图所示(以下程序仿真步骤类似,故省略)。,本例使用“图像恢复模型”中创建的模糊图像,为便于比较,指定同一个 PSF 函数。本例演示了导致模糊化的函数 PSF 的重要性,得到准确的 PSF 时,恢复的结果会比较好。,图43 用 Wiener 滤波器进行恢复的图像比较,3 用regular滤波器进行恢复 采用 deconvreg 函数,用 regularized 滤波器恢复图像。当知道附加噪声的部分信息时,使用 regularized 滤波器比较有效。下面通过例题分析用regular滤波器进行图像恢复的效果。,【例11】Deconvreg函数应用举例: 参考程序: I = checkerboar

24、d(8); PSF = fspecial(gaussian,7,10); V = .01; BlurredNoisy = imnoise(imfilter(I,PSF),gaussian,0,V); NOISEPOWER = V*prod(size(I); J LAGRA = deconvreg(BlurredNoisy,PSF,NOISEPOWER);,subplot(221); imshow(BlurredNoisy); title(A = Blurred and Noisy); subplot(222); imshow(J); title(J LAGRA = deconvreg(A,PS

25、F,NP);,subplot(223); imshow(deconvreg(BlurredNoisy,PSF, ,LAGRA/10); title(deconvreg(A,PSF, ,0.1*LAGRA); subplot(224); imshow(deconvreg(BlurredNoisy,PSF, ,LAGRA*10); title(deconvreg(A,PSF, ,10*LAGRA);,图44 用regularized 滤波器进行恢复的图像比较,4 用Lucy-Richardson 算法进行恢复 使用 deconvlucy 函数,用加速衰减 Lucy-Richardson 算法恢复图

26、像。假定泊松噪声统计量,用 PSF 进行卷积时,该算法使生成的图像是模糊图像实例的可能性最大。已知 PSF,但对图像中的附加噪声知之甚少时,deconvlucy 函数比较有效。MATLABR2008b中,该函数实现了原始 Lucy-Richardson 最大似然算法的几个改进版本,用它们可以完成复杂的图像恢复任务。,【例12】Deconvlucy函数应用举例: 参考程序: I = checkerboard(8); PSF = fspecial(gaussian,7,10); V = .0001; BlurredNoisy = imnoise(imfilter(I,PSF),gaussian,0

27、,V); WT = zeros(size(I); WT(5:end-4,5:end-4) = 1; J1 = deconvlucy(BlurredNoisy,PSF); J2 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V); J3 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);,subplot(221);imshow(BlurredNoisy); title(A = Blurred and Noisy); subplot(222);imshow(J1); title(deconvlucy(A,PSF); subplo

28、t(223);imshow(J2); title(deconvlucy(A,PSF,NI,DP); subplot(224);imshow(J3); title(deconvlucy(A,PSF,NI,DP,WT);,图45 用Lucy-Richardson 算法进行恢复的图像比较,5 用盲去卷积算法进行恢复 使用 deconvblind 函数,采用盲去卷积算法恢复图像。该算法用在不知道失真信息的情况下比较有效。deconvblind 函数使用与加速衰减 Lucy-Richardson 算法近似的迭代处理来同时恢复图像和 PSF。 与 deconvlucy 函数类似,deconvblind 函

29、数也实现了几个原 Lucy-Richardson 最大似然算法的改进版本来完成复杂的图像恢复任务。,【例13】Deconvblind函数应用举例: 参考程序: I = checkerboard(8); PSF = fspecial(gaussian,7,10); V = .0001; BlurredNoisy = imnoise(imfilter(I,PSF),gaussian,0,V); WT = zeros(size(I); WT(5:end-4,5:end-4) = 1; INITPSF = ones(size(PSF); J P = deconvblind(BlurredNoisy,I

30、NITPSF,20,10*sqrt(V),WT);,subplot(221);imshow(BlurredNoisy); title(A = Blurred and Noisy); subplot(222);imshow(PSF,); title(True PSF); subplot(223);imshow(J); title(Deblurred Image); subplot(224);imshow(P,); title(Recovered PSF);,图46 用盲卷积算法进行恢复的图像比较,6 图像的重建操作 图像重建操作指通过对离散图像进行线性空间内插或线性空间滤波来重新获得连续图像的方

31、法。本章节主要以线性空间滤波对二维静态图像进行重建。 MATLAB图像处理工具箱中的Phantom函数,可以产生一幅Shepp-Logan人脑模型图,该图作为一个二维平面测试图,对其进行重建操作可以模拟出许多人脑横切面的性质和特征。,【例14】调用Phantom函数,产生Shepp-Logan人脑模型图,利用Radon Transform和Inverse Radon Transform函数实现图像的重建。 参考程序: angularvector=0:179;%设置角度从0到179. P = phantom(Modified Shepp-Logan,200);%调用Phantom函数产生重建原始

32、模型. imshow(P);%显示原始图像. angularvector1=0:10:170;%设置角度的起止点和步长.,R1,xp=radon(P,angularvector1);%在设置角度情况下,对原始图像调用Radon变换. angularvector2=0:5:175; %设置角度新的起止点和步长,赋予新的变量. R2,xp=radon(P,angularvector2);%对应新的角度,对原始图像调用Radon变换. angularvector3=0:2:178;%原理同上. R3,xp=radon(P,angularvector3);%综上为R1,R2,R3三个不同角度下的Rad

33、on变换.,figure,imagesc(angularvector,xp,R1);%独立显示 imagesc绘制Radon变换后的离散点阵. title(radon transform of the Shepp-Logan head phantom using 18 projections );%标题. xlabel(angularvector(degree);%X轴标注. ylabel(Xprime); %Y轴标注. set(gca,Xtick,0:20:179);%设置显示单位从0到179,步长为20. colormap(hot);%颜色平滑过渡. colorbar;%图像的旁边显示色条

34、.,figure,imagesc(angularvector2,xp,R2); title(radon transform of the Shepp-Logan head phantom using 36 projections ) xlabel(angularvector(degree); ylabel(Xprime); set(gca,Xtick,0:20:179); colormap(hot); colorbar;,figure,imagesc(angularvector3,xp,R3); title(radon transform of the Shepp-Logan head pha

35、ntom using 90 projections ) xlabel(angularvector(degree); ylabel(Xprime); set(gca,Xtick,0:20:179); colormap(hot); colorbar;,IR1=iradon(R1,angularvector1,0.9);%指定归一化频率为0.9 figure,imshow(IR1);%独立窗口中显示图像IR1. title( Inverse Radon Transform of the Shepp-Logan Head Phantom using 18 projections ); IR2=irad

36、on(R2,angularvector2,0.9); %指定归一化频率为0.9 figure,imshow(IR2); %独立窗口中显示图像IR2. title( Inverse Radon Transform of the Shepp-Logan Head Phantom using 36 projections ); IR3=iradon(R3,angularvector3,0.9); %指定归一化频率为0.9 figure,imshow(IR3); %独立窗口中显示图像IR3. title( Inverse Radon Transform of the Shepp-Logan Head

37、Phantom using 90 projections );,图47 利用Phantom函数产生的Shepp-Logan大脑原始图像,图48 原图18radon变换 图49 原图36radon变换 图50 原图90radon变换,图51 18radon逆变换 图52 36radon逆变换 图53 90radon逆变换,7 数字图像处理的综合实例及分析 【例15】使用视频和图像处理模块集,对图像circuit.tif进行旋转和增强处理,改善图像的显示效果。 操作步骤: (1) 在Matlab命令窗口中输入viplib命令,打开视频和图像处理模块集Library:viplibv1窗口。 (2)

38、在Library:viplibv1窗口中选择FileNewModel菜单,新建Simulink模型。 (3) 在新建模型窗口中加入所需模块,各模块名称、数量、来源如表11所示,模块放置位置可参考图54。,表11 例15所用模块列表,(4) 双击图54所示的各模块,对其进行参数设置: Image From File模块:Main面板中的File name参数设置为circuit.tif; Rotate模块:Main面板中的Angle (radians)参数设置为pi/2;(即90角) Contrast Adjustment模块:Main面板中的Adjust pixel values from参数

39、设置为Range determined by saturating outlier pixels。 (5) 连接各模块,如图54所示。,(6) 设置仿真器参数。选择模型窗口的SimulationConfiguration Parameters菜单,打开Configuration Parameters对话框,图54 例15仿真框图,在左边窗格中选择Solver面板,在右边窗格设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。单击OK按钮结束设置。 (7) 保存模型文件,并运行该仿真。运行结果如图55、图5

40、6和图57所示。其中图55为原始图像,图56是经Rotate模块处理后的图像,图57是经Contrast Adjustment模块处理后的图像。 由结果可看出,图像经过Rotate模块处理后电路板元器件布局走向由纵向变为横向,经过Contrast Adjustment模块进行灰度变换处理后,图像对比度明显增强。,图55 例15原始图像 图56 例15旋转后图像 图57 例15增强后图像,【例16】使用视频和图像处理模块集,利用形态学方法实现图像噪点消除。 操作步骤: (1) 为了便于观察图像去噪效果,先准备一幅含有椒盐噪声的图像。在MATLAB命令窗口中输入以下命令: A=imread(tir

41、e.tif); % tire.tif是一幅MATLAB自带的样图。 B= imnoise(A,salt (2) 打开视频和图像处理模块集,新建Simulink模型。 (3) 在新建模型窗口中加入如表12所示的各个模块,模块放置位置可参考图58。,表12 例5所用模块列表,(4) 双击模型窗口中的各模块,对其进行参数设置: Image From Workspace模块:Main面板中的Value参数设置为A; Image From Workspace1模块:Main面板中的Value参数设置为B; Autothreshold模块:Main面板中的Scale threshold选项前打勾,将其下的

42、Threshold scaling factor参数设置为0.9; (5) 按图26所示连接各模块。,图58 例16仿真框图,(6) 设置仿真器参数。设置Stop time为0,Type设为Fixed-step,Solver设为Discrete (no continuous states)。 (7) 保存模型文件,并运行该仿真。运行的图像输出结果如图59至图63所示。其中图59为原始灰度图像,图60为加入噪声后的图像,图61为灰度图转为二值图后的图像,图62为执行了形态学开启运算操作后的图像,图63为执行了形态学闭合运算操作后的图像。,图59 例16原始图像 图60 例16加噪后图像 图61

43、例16二值化图像,图62 例16开运算图像 图63 例16闭运算图像,由结果可以看出,将原图中加入噪点以后,深色背景下的噪点为白色,浅色背景下的噪点为黑色,为了使背景与噪点更加容易区分,将加噪后的图像二值化,因此在将灰度图转为二值图像后,可以清楚地观察出黑色背景和白色背景上的噪点,这时再对二值化图像进行形态学操作:开启运算可以去除黑色背景上的噪点,闭合运算可以去除白色背景上的噪点,从而达到图像去噪的效果。,【例17】通过MATLABR2008b开发环境实现用维纳滤波器恢复原图像。 1)把噪声加入纯净图像形成退化图像,比较运动噪声和高斯噪声对图像的影响; 原图像如图64所示:,图64 例17原始

44、图像,操作步骤: (1)在MATLAB主界面下点击filenewblank M-file,再点击filesave as保存新建的M文件exam5_17a.m,在新建的M文件里输入如下程序。 (2)参考程序: I=imread(autumn.tif); figure,imshow(I); LEN=31;%设置长度或距离。 THETA=11;%设置方向角度。,PSF1=fspecial(motion,LEN,THETA);%点扩散函数参数设置。 PSF2=fspecial(gaussian,10,5); Blurred1=imfilter(I,PSF1,circular,conv); Blurre

45、d2=imfilter(I,PSF2,conv); V=0.002; BlurredNoisy1=imnoise(Blurred1,gaussian,0,V); BlurredNoisy2=imnoise(Blurred2,gaussian,0,V); wnr1=deconvwnr(Blurred1,PSF1); wnr2=deconvwnr(Blurred1,PSF2);,subplot(2,2,1);imshow(BlurredNoisy1); %显示运动噪声引起的模糊图像。 title(motion); subplot(2,2,2);imshow(BlurredNoisy2); %显示高

46、斯噪声引起的模糊图像。 title(gaussian); subplot(2,2,3);imshow(wnr1); %显示利用维纳滤波器恢复运动噪声引起的模糊图像。 title(restored1,ture PSF); subplot(2,2,4);imshow(wnr2); %显示利用维纳滤波器恢复高斯噪声引起的模糊图像。 title(restored2,true PSF);,(3)程序编写完成以后,在主菜单栏中选择DebugSave File and Run,如果编译过程中出现错误,则在MATLAB的command window中显示错误行,进行检查和修改;若没有,即可显示运行结果,如65

47、图所示。,图65 例17维纳滤波恢复图像,(4)结果分析: 仿真图中按照矩阵排列,第一幅图为运动噪声引起的模糊图像,第二幅图为高斯噪声引起的模糊图像,第三幅图为利用维纳滤波器恢复运动噪声引起的模糊图像,第四幅图为利用维纳滤波器恢复高斯噪声引起的模糊图像。结果可以明显看出:运动引起的模糊图像的恢复效果比因高斯引起的模糊图像的恢复效果清晰。,2)将维纳滤波器的参数进行设定来恢复图像;观察并比较恢复效果。 (1)本例题选择针对运动噪声引起的模糊图像,采用了设定过大的模糊距离参数和过大的模糊运动方向角度参数进行恢复的方法 (创建M文件等操作步骤与前面类似,故省略步骤,直接给出参考程序和运行结果)。,参

48、考程序: I=imread(autumn.tif); LEN=31; THETA=11; PSF1=fspecial(motion,LEN,THETA); PSF2=fspecial(gaussian,10,5); Blurred1=imfilter(I,PSF1,circular,conv); Blurred2=imfilter(I,PSF2,conv); V=0.002; BlurredNoisy1=imnoise(Blurred1,gaussian,0,V); BlurredNoisy2=imnoise(Blurred2,gaussian,0,V);,wnr3=deconvwnr(Blurred1,fspecial(motion,2*LEN,THETA);% 设置过大模糊距离参数%来恢复图像。 wnr4=deconvwnr(Blurred1,fspecial(motion,LEN,2*THETA);%

温馨提示

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

评论

0/150

提交评论