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

下载本文档

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

文档简介

演示文稿在图像处理中的应用现在是1页\一共有107页\编辑于星期六(优选)在图像处理中的应用现在是2页\一共有107页\编辑于星期六1视频和图像处理模块集1.1视频和图像处理模块集概述视频和图像处理模块集V2.6共有70多个子模块,分成11大类模块。各大类模块如右图所示:2011-033现在是3页\一共有107页\编辑于星期六1.2分析和增强(Analysis&Enhancement)模块库分析和增强类模块包含10个子模块:(1)BlockMatching(块匹配)模块(2)ContrastAdjustment(对比度调节)模块(3)CornerDetection(角点检测)模块(4)Deinterlacing(反交错处理)模块(5)EdgeDetection(边缘检测)模块(6)HistogramEqualization(直方图均衡化)模块(7)MedianFilter(中值滤波)模块(8)OpticalFlow(光流法)模块(9)SAD(绝对误差和)模块(10)TraceBoundaries(边界跟踪)模块现在是4页\一共有107页\编辑于星期六1.3转换(Conversions)模块库此模块库共包含7个子模块:

(1)Autothreshold(自动阈值)模块(2)ChromaResampling(色度重采样)模块(3)ColorSpaceConversion(色彩空间转换)模块(4)Demosaic(去马赛克)模块(5)GammaCorrection(伽玛校正)模块(6)ImageComplement(图像求补)模块(7)ImageDataTypeConversion(图像数据类型转换)模块现在是5页\一共有107页\编辑于星期六1.4滤波(Filtering)模块库此模块库共包含4个子模块:

(1)2-DConvolution(二维卷积)模块(2)2-DFIRFilter(二维FIR数字滤波)模块(3)KalmanFilter(卡尔曼滤波)模块(4)MedianFilter(中值滤波)模块现在是6页\一共有107页\编辑于星期六1.5几何变换(GeometricTransformations)模块库

此模块库共包含7个子模块:

(1)ApplyGeometricTransformation(应用几何变换)模块(2)EstimateGeometricTransformation(估算几何变换)模块(3)ProjectiveTransformation(投影变换)模块(4)Resize(缩放)模块(5)Rotate(旋转)模块(6)Shear(切变)模块(7)Translate(平移)模块现在是7页\一共有107页\编辑于星期六1.6形态学操作(MorphologicalOperations)模块库此模块库共包含7个子模块:

(1)Bottom-hat(底帽滤波)模块(2)Closing(闭合)模块(3)Dilation(膨胀)模块(4)Erosion(腐蚀)模块(5)Label(标记)模块(6)Opening(开启)模块(7)Top-hat(顶帽滤波)模块现在是8页\一共有107页\编辑于星期六1.7接收器(Sinks)模块库此模块库共包含6个子模块:

(1)FrameRateDisplay(帧频显示)模块(2)ToMultimediaFile(输出多媒体文件)模块(3)ToVideoDisplay(输出视频显示器)模块(4)VideoToWorkspace(向工作空间输出视频)模块(5)VideoViewer(视频显示器)模块(6)WriteBinaryFile(写二进制文件)模块现在是9页\一共有107页\编辑于星期六1.8输入源(Sources)模块库此模块库共包含5个子模块:

(1)FromMultimediaFile(来自多媒体文件)模块(2)ImageFromFile(图像文件)模块(3)ImageFromWorkspace(工作空间图像)模块(4)ReadBinaryFile(读二进制文件)模块(5)VideoFromWorkspace(视频来自工作空间)模块现在是10页\一共有107页\编辑于星期六1.9统计(Statistics)模块库此模块库共包含12个子模块:

(1)2-DAutocorrelation(二阶自相关系数)模块(2)2-DCorrelation(二阶互相关系数)模块(3)BlobAnalysis(Blob分析)模块(4)FindLocalMaxima(求局部极大值)模块(5)Histogram(直方图)模块(6)Maximum(最大值)模块(7)Mean(平均值)模块(8)Median(中值)模块(9)Minimum(最小值)模块(10)PSNR(峰值信噪比)模块(11)StandardDeviation(标准差)模块(12)Variance(方差)模块现在是11页\一共有107页\编辑于星期六1.10文本和图形(Text&Graphics)模块库此模块库共包含4个子模块:

(1)Compositing(合成)模块(2)DrawMarkers(绘制标记)模块(3)DrawShapes(绘图)模块(4)InsertText(插入文本)模块现在是12页\一共有107页\编辑于星期六1.11变换(Transforms)模块库此模块库共包含7个子模块:

(1)2-DDCT(二维离散余弦变换)模块(2)2-DFFT(二维傅立叶变换)模块(3)2-DIDCT(二维离散余弦逆变换)模块(4)2-DIFFT(二维傅立叶逆变换)模块(5)GaussianPyramid(高斯金字塔)模块(6)HoughLines(Hough线)模块(7)HoughTransform(Hough变换)模块现在是13页\一共有107页\编辑于星期六1.12工具(Utilities)模块库此模块库共包含3个子模块:

(1)BlockProcessing(块处理)模块对输入矩阵的指定子矩阵进行用户自定义操作。(2)ImagePad(图像填补)模块对图像的四周进行填补。(3)VariableSelector(可变选择器)模块从输入矩阵中选择指定行或列的子集。现在是14页\一共有107页\编辑于星期六2

图像的增强2.1灰度变换增强

常见灰度变换方法包括直接灰度变换和直方图修正等方法,获取的主要视觉效果是增强图像对比度。

【例1】用对比度调节ContrastAdjustment模块进行直接灰度变换。操作步骤:(1)在Matlab命令窗口中输入viplib命令,打开视频和图像处理模块集Library:viplibv1窗口。(2)在Library:viplibv1窗口中选择FileNewModel菜单,新建Simulink模型。(3)在新建模型窗口中加入所需模块,各模块名称、数量、来源如表1所示,模块放置位置可参考图13。现在是15页\一共有107页\编辑于星期六模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1ContrastAdjustmentVideoandImageProcessingBlockset>Analysis&Enhancement1VideoViewerVideoandImageProcessingBlockset>Sinks2表1例1所用模块列表(4)双击图13所示的各模块,对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为pout.tif;

ContrastAdjustment模块:Main面板中的Adjustpixelvaluesfrom参数设置为Rangedeterminedbysaturatingoutlierpixels。(5)连接各模块,如下图所示。

现在是16页\一共有107页\编辑于星期六(6)设置仿真器参数。选择模型窗口的SimulationConfigurationParameters菜单,打开ConfigurationParameters对话框,在左边窗格中选择Solver面板,在右边窗格设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。单击OK按钮结束设置。(7)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图是经ContrastAdjustment模块处理后的图像。

现在是17页\一共有107页\编辑于星期六【例2】用直方图均衡化HistogramEqualization模块进行直方图修正。操作步骤:(1)使用与例1同样的方法,新建一个Simulink模型。(2)在新建模型窗口中加入所需模块,各模块名称、数量、来源如表2所示,模块放置位置可参考下页中的示意图。模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1HistogramEqualizationVideoandImageProcessingBlockset>Analysis&Enhancement1VideoViewerVideoandImageProcessingBlockset>Sinks2表2例2所用模块列表现在是18页\一共有107页\编辑于星期六(3)双击模型窗口中的各模块,对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为tire.tif;其余模块:各参数均采用默认设置;(4)连接各模块,如下图所示。现在是19页\一共有107页\编辑于星期六(5)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。(6)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图是经HistogramEqualization模块处理后的图像。由结果可看出,这幅黑色为主的图像经过HistogramEqualization模块进行直方图均衡化处理后,对比度得到增强,原来黑色区域的图像细节得以显示。现在是20页\一共有107页\编辑于星期六2.2图像平滑增强图像平滑处理一般通过低通滤波实现,例如均值滤波和中值滤波。获取的主要增强效果是平滑图像细节,去除图像噪声。【例3】用中值滤波MedianFilter模块去除椒盐噪声。操作步骤:(1)为了便于观察图像平滑效果,先准备一幅含有椒盐噪声的图像。在MATLAB命令窗口中输入以下命令:A=imread('coins.png');%coins.png是一幅MATLAB自带的样图。B=imnoise(A,'salt&pepper',0.02);(2)打开视频和图像处理模块集,新建Simulink模型。(3)在新建模型窗口中加入所需模块,各模块名称、数量、来源如表3所示,模块放置位置可参考下页中示意图。

现在是21页\一共有107页\编辑于星期六(4)双击模型窗口中的各模块,对其进行参数设置:

ImageFromWorkspace模块:Main面板中的Value参数设置为A;

ImageFromWorkspace1模块:Main面板中的Value参数设置为B;

MedianFilter模块:各参数均采用默认设置;(5)连接各模块,如下页图所示。模块名称模块来源数量ImageFromWorkspaceVideoandImageProcessingBlockset>Sources2MedianFilterVideoandImageProcessingBlockset>Analysis&Enhancement1VideoViewerVideoandImageProcessingBlockset>Sinks3表3例3所用模块列表现在是22页\一共有107页\编辑于星期六(6)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。例3仿真框图现在是23页\一共有107页\编辑于星期六(7)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,中图为加入椒盐噪声后的图像,右图是经MedianFilter模块处理后的图像。对比三幅图像可以看出,加入椒盐噪声后的图像经过MedianFilter模块进行图像平滑处理后,椒盐噪声被去除,同时其余的图像细节也被平滑。

现在是24页\一共有107页\编辑于星期六2.3图像锐化增强

图像锐化处理一般通过高通滤波实现。获取的主要视觉效果是增强图像边缘,补偿图像轮廓,使原来模糊的图像变得清晰。【例4】用FIR滤波器2-DFIRFilter模块进行图像锐化处理。操作步骤:(1)先读入一幅RGB图像。在MATLAB命令窗口中输入以下命令:I=im2double(imread('peppers.png'));%peppers.png是MATLAB自带样图。(2)打开视频和图像处理模块集,新建Simulink模型。(3)在新建模型窗口中加入所需模块,各模块名称、数量、来源如表4所示,模块放置位置可参考后页的仿真框图。

现在是25页\一共有107页\编辑于星期六(4)双击模型窗口中的各模块,对其进行参数设置:

ImageFromWorkspace模块:Main面板中的Value参数设置为I,Imagesignal参数设置为Separatecolorsignals;

ColorSpaceConversion模块:Conversion参数设为R'G'B'toY'CbCr(默认设置),Imagesignal参数设为Separatecolorsignals;2-DFIRFilter模块:将Main面板中的Coefficients参数设置为fspecial('unsharp')以建立二维高通滤波器,Outputsize参数设为SameasinputportI,Paddingoptions参数设为Symmetric,Filteringbasedon参数设为Correlation。模块名称模块来源数量ImageFromWorkspaceVideoandImageProcessingBlockset>Sources1ColorSpaceConversionVideoandImageProcessingBlockset>Conversions22-DFIRFilterVideoandImageProcessingBlockset>Filtering1VideoViewerVideoandImageProcessingBlockset>Sinks2表4例4所用模块列表现在是26页\一共有107页\编辑于星期六

ColorSpaceConversion1模块:Conversion参数设为Y'CbCrtoR'G'B',Imagesignal参数设为Separatecolorsignals;两个VideoViewer模块:均将Imagesignal参数设为Separatecolorsignals。(5)按下图所示连接各模块。例4仿真框图现在是27页\一共有107页\编辑于星期六(6)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。(7)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为经2-DFIRFilter模块锐化后的图像。对比两幅图像可以看出,原始图像经过高通滤波器进行图像锐化处理后,图像中物品的轮廓更加明显,图像显得更加清晰了。现在是28页\一共有107页\编辑于星期六3图像的几何变换3.1图像的旋转

图像的旋转可通过几何变换模块库中的Rotate模块实现。【例5】用Rotate模块将图像逆时针旋转45°角。操作步骤:(1)打开视频和图像处理模块集,新建Simulink模型。(2)在新建模型窗口中加入如下表所示的各个模块,模块放置位置可参考下页所示模块连接图。

模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1RotateVideoandImageProcessingBlockset>GeometricTransformations1VideoViewerVideoandImageProcessingBlockset>Sinks2表5例5所用模块列表现在是29页\一共有107页\编辑于星期六(3)双击模型窗口中的各模块,对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为autumn.tif;

Rotate模块:Main面板中的Angle(radians)参数设置为pi/4;(即45°角)(4)按下图所示连接各模块。现在是30页\一共有107页\编辑于星期六(5)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。(6)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为经Rotate模块旋转45°后的图像。

现在是31页\一共有107页\编辑于星期六3.2图像的切变几何变换模块库中的Shear模块提供了水平和垂直两个方向的线性切变功能。【例6】用Shear模块完成图像的水平切变。操作步骤:(1)打开视频和图像处理模块集,新建Simulink模型。(2)在新建模型窗口中加入如下表所示的各个模块,模块放置位置可参考下页所示的模块连接图。模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1ShearVideoandImageProcessingBlockset>GeometricTransformations1VideoViewerVideoandImageProcessingBlockset>Sinks2现在是32页\一共有107页\编辑于星期六(3)双击模型窗口中的各模块,按自已的需要对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为office_4.jpg;

Shear模块:Main面板中的Sheardirection参数设置为Horizontal(默认设置);Row/columnshearvalues[firstlast]设置为[1000];(4)按下图所示连接各模块。现在是33页\一共有107页\编辑于星期六(5)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。(6)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为经Shear模块进行水平切变后的图像。可以看出,按照本例中Shear模块设置的偏移量参数[1000],目标图像首行像素被移动到水平右偏100像素的位置,其余各行的偏移量线性递减,至最后一行偏移量为0,以此构成切变效果。现在是34页\一共有107页\编辑于星期六3.3图像的缩放利用几何变换模块库中的Resize模块,可方便地实现图像缩放功能。【例7】用Resize模块缩小图像。操作步骤:(1)打开视频和图像处理模块集,新建Simulink模型。(2)在新建模型窗口中加入如表7所示的各个模块,模块放置位置可参考下页中所示图。

模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1ResizeVideoandImageProcessingBlockset>GeometricTransformations1VideoViewerVideoandImageProcessingBlockset>Sinks2表7例7所用模块列表现在是35页\一共有107页\编辑于星期六(3)双击模型窗口中的各模块,按自已的需要对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为pears.png;

Resize模块:Main面板中的Resizefactorin%参数设置为[3030];(4)按下图所示连接各模块。

现在是36页\一共有107页\编辑于星期六(5)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。(6)保存模型文件,并运行该仿真。运行结果如图所示。其中左图为原始大小图像,右图为经Resize模块进行缩小后的图像。为观察图像的真实大小,可在VideoViewer的界面上选择Axes菜单下的SetDisplayToTrueSize菜单项,也可通过右键单击图像来选择该项菜单。两图比较可以看出,按照本例中设置的缩放百分比参数[3030],大小原为486×732的图像,其行列像素数均缩小成原来的30%后,图像大小变成了146×220。

现在是37页\一共有107页\编辑于星期六3.4图像的裁切利用工具(Utilities)模块库中的VariableSelector模块或Simulink的SignalRouting模块库的Selector模块,都可以实现图像裁切功能。【例8】用VariableSelector模块裁切图像,取得图像中的一部分。操作步骤:(1)打开视频和图像处理模块集,新建Simulink模型。(2)在新建模型窗口中加入如表8所示的各个模块,模块放置位置可参考后页中的模块连接图。

现在是38页\一共有107页\编辑于星期六(3)双击模型窗口中的各模块,对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为coins.png;

VariableSelector模块:Numberofinputsignals参数设置为1,Select参数设置为Columns;

VariableSelector1模块:Numberofinputsignals参数设置为1,Select参数设置为Rows;两个Constant模块:Main面板中的Constantvalue参数均设置为[50:150]。(4)按下页图所示连接各模块。模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1VariableSelectorVideoandImageProcessingBlockset>Utilities2ConstantSimulink>Sources2VideoViewerVideoandImageProcessingBlockset>Sinks2表8例8所用模块列表现在是39页\一共有107页\编辑于星期六(5)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。现在是40页\一共有107页\编辑于星期六(6)保存模型文件,并运行该仿真。运行结果如下图所示。其中左图为原始图像,右图为裁切后的图像。为观察图像的真实大小,可在VideoViewer的界面上选择Axes菜单下的SetDisplayToTrueSize菜单项,也可右键单击图像来选择。比较两图可以看出,按照本例中设置的行列裁留参数[50:150],原始大小为246×300的图像,行列方向均只留下从50到150像素的部分,其余部分被裁掉,图像大小也变成了101×101。

现在是41页\一共有107页\编辑于星期六4图像的形态学操作数学形态学是计算机数字图像处理中的一个重要研究领域,主要用于获取图像目标的形状特征,在对图像目标进行定量描述与分析的应用领域中发挥了重要的作用。形态学最基本的运算是膨胀和腐蚀,利用膨胀和腐蚀运算可以组成开启和闭合等其它形态学运算,为图像识别等领域提供数学运算支持。

现在是42页\一共有107页\编辑于星期六【例9】用形态学方法分析计算MATLAB自带的一幅硬币图像里的硬币数量。任务与思路:MATLAB自带图像文件中有一个coins.png文件,即例8中所使用的图像,该图像是一幅灰度图,现在希望计算机能自行计算该图像中所含硬币的数量。在Simulink中的操作思路是:先把灰度图转为二值图像,然后利用形态学开启运算对二值图进行处理,再用Label模块对目标进行计数。具体操作步骤:(1)打开视频和图像处理模块集,新建Simulink模型。(2)在新建模型窗口中加入如表9所示的各个模块。

现在是43页\一共有107页\编辑于星期六(3)双击模型窗口中的各模块,对其进行参数设置:

ImageFromFile模块:Main面板中的Filename参数设置为coins.png;

Autothreshold模块:Main面板中的Scalethreshold选项前打勾,将其下的Thresholdscalingfactor参数设置为0.9;两个Label模块:Output参数都设置为Numberoflabels;模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1AutothresholdVideoandImageProcessingBlockset>Conversions1OpeningVideoandImageProcessingBlockset>MorphologicalOperations1LabelVideoandImageProcessingBlockset>MorphologicalOperations2VideoViewerVideoandImageProcessingBlockset>Sinks3DisplaySimulink>Sinks2表9例9所用模块列表现在是44页\一共有107页\编辑于星期六(4)按下图所示连接各模块。(5)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。

现在是45页\一共有107页\编辑于星期六(6)保存模型文件,并运行该仿真。运行的图像输出结果如下图所示。其中左图为原始灰度图像,中图为由灰度转为二值图后的图像,右图为执行了形态学开启操作后的图像。运行的计数结果如图38中Display模块上显示的数字所示。

由结果可以看出,由于原图中有一个硬币的颜色接近背景颜色,因此在将灰度图转为二值图像后,在该位置出的现的白色目标区域被划分成多块,这时如果直接对该图进行目标计数,得到的结果为12(如前页图所示),是错误的结果;在经过对该图再进行形态学开启操作后,该区域被连通,这时再进行目标计数,就得到正确的结果10。

现在是46页\一共有107页\编辑于星期六5图像的恢复操作图像的恢复是数字图像处理中常用的处理方法,就是要尽可能恢复在传输或记录过程中,由于成像系统、传输介质或接收设备不完善,导致质量变坏的图像的原来面目。

常见的恢复模型如下图表示:

图42恢复模型原理框图现在是47页\一共有107页\编辑于星期六1利用函数恢复图像

MATLABR2008b图像处理工具箱中有4个图像恢复函数,如表10所示。函数名称函数用途deconvwnr用Wiener滤波器实现图像恢复deconvreg用regularized滤波器实现图像恢复deconvlucy用lucy-richardson算法实现恢复deconvblind用bilnd去卷积算法实现图像恢复表10图像恢复函数列表现在是48页\一共有107页\编辑于星期六2用Wiener滤波器进行恢复

用deconvwnr函数,采用Wiener滤波器,在图像的频率特征和附加噪声已知的情况下,采用Wiener进行图像恢复比较有效。【例10】Deconvwnr函数应用举例:具体操作步骤:(1)在MATLAB主界面下点击filenewblankM-file,在新建的M文件里输入如下程序(以下程序编写步骤类似,故省略,直接给出参考程序)。

现在是49页\一共有107页\编辑于星期六(2)参考程序:I=checkerboard(8);noise=0.1*randn(size(I));PSF=fspecial('motion',21,11);Blurred=imfilter(I,PSF,'circular');BlurredNoisy=im2uint8(Blurred+noise);%噪声——功率比NSR=sum(noise(:).^2)/sum(I(:).^2);%对信噪比参数NSR进行设置。%噪声功率现在是50页\一共有107页\编辑于星期六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));

现在是51页\一共有107页\编辑于星期六%原始图像的自相关函数ICORR=fftshift(real(ifftn(IP)));ICORR1=ICORR(:,ceil(size(I,1)/2));%噪声——功率比NSR=NPOW/IPOW;subplot(221);imshow(BlurredNoisy,[]);%显示加噪以后的退化图像。title('A=BlurredandNoisy');现在是52页\一共有107页\编辑于星期六subplot(222);imshow(deconvwnr(BlurredNoisy,PSF,NSR),[]);%噪声—功率比NSR作为参数选项滤波。title('deconvwnr(A,PSF,NSR)');subplot(223);imshow(deconvwnr(BlurredNoisy,PSF,NCORR,ICORR),[];%噪声和原始图像自相关函数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)');现在是53页\一共有107页\编辑于星期六(3)程序编写完成以后,在主菜单栏中选择DebugSaveFileandRun,如果编译过程中出现错误,则在MATLAB的commandwindow中显示错误行,若没有,即可显示运行结果,如43图所示(以下程序仿真步骤类似,故省略)。现在是54页\一共有107页\编辑于星期六

本例使用“图像恢复模型”中创建的模糊图像,为便于比较,指定同一个PSF函数。本例演示了导致模糊化的函数PSF的重要性,得到准确的PSF时,恢复的结果会比较好。

图43用Wiener滤波器进行恢复的图像比较现在是55页\一共有107页\编辑于星期六3用regular滤波器进行恢复

采用deconvreg函数,用regularized滤波器恢复图像。当知道附加噪声的部分信息时,使用regularized滤波器比较有效。下面通过例题分析用regular滤波器进行图像恢复的效果。现在是56页\一共有107页\编辑于星期六【例11】Deconvreg函数应用举例:参考程序:I=checkerboard(8);PSF=fspecial('gaussian',7,10);V=.01;BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);NOISEPOWER=V*prod(size(I));[JLAGRA]=deconvreg(BlurredNoisy,PSF,NOISEPOWER);现在是57页\一共有107页\编辑于星期六subplot(221);imshow(BlurredNoisy);title('A=BlurredandNoisy');subplot(222);imshow(J);title('[JLAGRA]=deconvreg(A,PSF,NP)');

现在是58页\一共有107页\编辑于星期六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)');

现在是59页\一共有107页\编辑于星期六图44用regularized滤波器进行恢复的图像比较现在是60页\一共有107页\编辑于星期六4用Lucy-Richardson算法进行恢复使用deconvlucy函数,用加速衰减Lucy-Richardson算法恢复图像。假定泊松噪声统计量,用PSF进行卷积时,该算法使生成的图像是模糊图像实例的可能性最大。已知PSF,但对图像中的附加噪声知之甚少时,deconvlucy函数比较有效。MATLABR2008b中,该函数实现了原始Lucy-Richardson最大似然算法的几个改进版本,用它们可以完成复杂的图像恢复任务。

现在是61页\一共有107页\编辑于星期六【例12】Deconvlucy函数应用举例:参考程序: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;J1=deconvlucy(BlurredNoisy,PSF);J2=deconvlucy(BlurredNoisy,PSF,20,sqrt(V));J3=deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);现在是62页\一共有107页\编辑于星期六subplot(221);imshow(BlurredNoisy);title('A=BlurredandNoisy');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)');现在是63页\一共有107页\编辑于星期六图45用Lucy-Richardson算法进行恢复的图像比较现在是64页\一共有107页\编辑于星期六5用盲去卷积算法进行恢复使用deconvblind函数,采用盲去卷积算法恢复图像。该算法用在不知道失真信息的情况下比较有效。deconvblind函数使用与加速衰减Lucy-Richardson算法近似的迭代处理来同时恢复图像和PSF。与deconvlucy函数类似,deconvblind函数也实现了几个原Lucy-Richardson最大似然算法的改进版本来完成复杂的图像恢复任务。

现在是65页\一共有107页\编辑于星期六【例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));[JP]=deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT);现在是66页\一共有107页\编辑于星期六subplot(221);imshow(BlurredNoisy);title('A=BlurredandNoisy');subplot(222);imshow(PSF,[]);title('TruePSF');subplot(223);imshow(J);title('DeblurredImage');subplot(224);imshow(P,[]);title('RecoveredPSF');现在是67页\一共有107页\编辑于星期六图46用盲卷积算法进行恢复的图像比较现在是68页\一共有107页\编辑于星期六6图像的重建操作图像重建操作指通过对离散图像进行线性空间内插或线性空间滤波来重新获得连续图像的方法。本章节主要以线性空间滤波对二维静态图像进行重建。

MATLAB图像处理工具箱中的Phantom函数,可以产生一幅Shepp-Logan人脑模型图,该图作为一个二维平面测试图,对其进行重建操作可以模拟出许多人脑横切面的性质和特征。

现在是69页\一共有107页\编辑于星期六【例14】调用Phantom函数,产生Shepp-Logan人脑模型图,利用RadonTransform和InverseRadonTransform函数实现图像的重建。参考程序:angularvector=0:179;%设置角度从0到179.P=phantom('ModifiedShepp-Logan',200);%调用Phantom函数产生重建原始模型.imshow(P);%显示原始图像.angularvector1=0:10:170;%设置角度的起止点和步长.现在是70页\一共有107页\编辑于星期六[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三个不同角度下的Radon变换.现在是71页\一共有107页\编辑于星期六figure,imagesc(angularvector,xp,R1);%独立显示imagesc绘制Radon变换后的离散点阵.title('radontransformoftheShepp-Loganheadphantomusing18projections');%标题.xlabel('\angularvector(degree)');%X轴标注.ylabel('X\prime');%Y轴标注.set(gca,'Xtick',0:20:179);%设置显示单位从0到179,步长为20.colormap(hot);%颜色平滑过渡.colorbar;%图像的旁边显示色条.

现在是72页\一共有107页\编辑于星期六figure,imagesc(angularvector2,xp,R2);title('radontransformoftheShepp-Loganheadphantomusing36projections')xlabel('\angularvector(degree)');ylabel('X\prime');set(gca,'Xtick',0:20:179);colormap(hot);colorbar;现在是73页\一共有107页\编辑于星期六figure,imagesc(angularvector3,xp,R3);title('radontransformoftheShepp-Loganheadphantomusing90projections')xlabel('\angularvector(degree)');ylabel('X\prime');set(gca,'Xtick',0:20:179);colormap(hot);colorbar;现在是74页\一共有107页\编辑于星期六IR1=iradon(R1,angularvector1,0.9);%指定归一化频率为0.9figure,imshow(IR1);%独立窗口中显示图像IR1.title('InverseRadonTransformoftheShepp-LoganHeadPhantomusing18projections');IR2=iradon(R2,angularvector2,0.9);%指定归一化频率为0.9figure,imshow(IR2);%独立窗口中显示图像IR2.title('InverseRadonTransformoftheShepp-LoganHeadPhantomusing36projections');IR3=iradon(R3,angularvector3,0.9);%指定归一化频率为0.9figure,imshow(IR3);%独立窗口中显示图像IR3.title('InverseRadonTransformoftheShepp-LoganHeadPhantomusing90projections');现在是75页\一共有107页\编辑于星期六图47利用Phantom函数产生的Shepp-Logan大脑原始图像现在是76页\一共有107页\编辑于星期六图48原图18°radon变换图49原图36°radon变换图50原图90°radon变换

图5118°radon逆变换图5236°radon逆变换图5390°radon逆变换现在是77页\一共有107页\编辑于星期六7数字图像处理的综合实例及分析

【例15】使用视频和图像处理模块集,对图像circuit.tif进行旋转和增强处理,改善图像的显示效果。操作步骤:(1)在Matlab命令窗口中输入viplib命令,打开视频和图像处理模块集Library:viplibv1窗口。(2)在Library:viplibv1窗口中选择FileNewModel菜单,新建Simulink模型。(3)在新建模型窗口中加入所需模块,各模块名称、数量、来源如表11所示,模块放置位置可参考图54。

现在是78页\一共有107页\编辑于星期六模块名称模块来源数量ImageFromFileVideoandImageProcessingBlockset>Sources1RotateVideoandImageProcessingBlockset>GeometricTransformations1ContrastAdjustmentVideoandImageProcessingBlockset>Analysis&Enhancement1VideoViewerVideoandImageProcessingBlockset>Sinks3表11例15所用模块列表现在是79页\一共有107页\编辑于星期六(4)双击图54所示的各模块,对其进行参数设置:ImageFromFile模块:Main面板中的Filename参数设置为circuit.tif;Rotate模块:Main面板中的Angle(radians)参数设置为pi/2;(即90°角)ContrastAdjustment模块:Main面板中的Adjustpixelvaluesfrom参数设置为Rangedeterminedbysaturatingoutlierpixels。(5)连接各模块,如图54所示。

现在是80页\一共有107页\编辑于星期六(6)设置仿真器参数。选择模型窗口的SimulationConfigurationParameters菜单,打开ConfigurationParameters对话框图54例15仿真框图现在是81页\一共有107页\编辑于星期六在左边窗格中选择Solver面板,在右边窗格设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。单击OK按钮结束设置。(7)保存模型文件,并运行该仿真。运行结果如图55、图56和图57所示。其中图55为原始图像,图56是经Rotate模块处理后的图像,图57是经ContrastAdjustment模块处理后的图像。由结果可看出,图像经过Rotate模块处理后电路板元器件布局走向由纵向变为横向,经过ContrastAdjustment模块进行灰度变换处理后,图像对比度明显增强。现在是82页\一共有107页\编辑于星期六图55例15原始图像图56例15旋转后图像图57例15增强后图像

现在是83页\一共有107页\编辑于星期六【例16】使用视频和图像处理模块集,利用形态学方法实现图像噪点消除。操作步骤:(1)为了便于观察图像去噪效果,先准备一幅含有椒盐噪声的图像。在MATLAB命令窗口中输入以下命令:>>A=imread('tire.tif');%tire.tif是一幅MATLAB自带的样图。>>B=imnoise(A,'salt&pepper',0.02);(2)打开视频和图像处理模块集,新建Simulink模型。(3)在新建模型窗口中加入如表12所示的各个模块,模块放置位置可参考图58。现在是84页\一共有107页\编辑于星期六模块名称模块来源数量ImageFromWorkspaceVideoandImageProcessingBlockset>Sources2AutothresholdVideoandImageProcessingBlockset>Conversions1OpeningVideoandImageProcessingBlockset>MorphologicalOperations1ClosingVideoandImageProcessingBlockset>MorphologicalOperations2VideoViewerVideoandImageProcessingBlockset>Sinks5表12例5所用模块列表现在是85页\一共有107页\编辑于星期六(4)双击模型窗口中的各模块,对其进行参数设置:ImageFromWorkspace模块:Main面板中的Value参数设置为A;ImageFromWorkspace1模块:Main面板中的Value参数设置为B;Autothreshold模块:Main面板中的Scalethreshold选项前打勾,将其下的Thresholdscalingfactor参数设置为0.9;(5)按图26所示连接各模块。

现在是86页\一共有107页\编辑于星期六图58例16仿真框图

现在是87页\一共有107页\编辑于星期六(6)设置仿真器参数。设置Stoptime为0,Type设为Fixed-step,Solver设为Discrete(nocontinuousstates)。(7)保存模型文件,并运行该仿真。运行的图像输出结果如图59至图63所示。其中图59为原始灰度图像,图60为加入噪声后的图像,图61为灰度图转为二值图后的图像,图62为执行了形态学开启运算操作后的图像,图63为执行了形态学闭合运算操作后的图像。现在是88页\一共有107页\编辑于星期六图59例16原始图像图60例16加噪后图像图61例16二值化图像

图62例16开运算图像图63例16闭运算图像

现在是89页\一共有107页\编辑于星期六

由结果可以看出,将原图中加入噪点以后,深色背景下的噪点为白色,浅色背景下的噪点为黑色,为了使背景与噪点更加容易区分,将加噪后的图像二值化,因此在将灰度图转为二值图像后,可以清楚地观察出黑色背景和白色背景上的噪点,这时再对二值化图像进行形态学操作:开启运算可以去除黑色背景上的噪点,闭合运算可以去除白色背景上的噪点,从而达到图像去噪的效果。现在是90页\一共有107页\编辑于星期六【例17】通过MATLABR2008b开发环境实现用维纳滤波器恢复原图像。1)把噪声加入纯净图像形成退化图像,比较运动噪声和高斯噪声对图像的影响;原图像如图64所示:图64例17原始图像现在是91页\一共有107页\编辑于星期六操作步骤:(1)在MATLAB主界面下点击filenewblankM-file,再点击filesaveas保存新建的M文件exam5_17a.m,在新建的M文件里输入如下程序。(2)参考程序:I=imread('autumn.tif');figure,imshow(I);LEN=31;%设置长度或距离。THETA=11;%设置方向角度。现在是92页\一共有107页\编辑于星期六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);wnr1=deconvwnr(Blurred1,PSF1);wnr2=deconvwnr(Blurred1,PSF2);现在是93页\一共有107页\编辑于星期六subplot(2,2,1);imshow(BlurredNoisy1);%显示运动噪声引起的模糊图像。title('motion');subplot(2,2,2);imshow(BlurredNoisy2);%显示高斯噪声引起的模糊图

温馨提示

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

评论

0/150

提交评论