基于matlab的数字成像获取物体三维轮廓的提取与分析_毕业论文(编辑修改稿)内容摘要:

个开关被触发时,它会给输入输出卡一个中断信号,同时,输入输出卡会发给计算机一个信号,当计算机端检测到这个信号时,通知视频采集卡执行抓拍动作,并把抓拍到的图像保存到计算机中等待处理。 由于生产线的传输速度比较低,而限位开关从触发到被计算机响应时间非常短,所以当计算机执行抓拍动作时,产品还在成像区的正中间,基本不会偏离成像区的中间位置,即使出现了微小的偏离现象,通过多次的实验知,这个偏离也在系统的误差范围内。 流程图如下:图 图像采集流程图在等待限位开关的信号时,通过PCI2312型号的16路输入输出卡把信号传输给计算机。 由于本系统用了两个摄像头来采集产品的形状和坐标信息,因此视频采集卡应至少含有两路视频输入口。 考虑到系统以后升级时可能增加摄像头,需要多预留12路视频输入口,因此本系统选用了含有4路视频输入口的DS4004HC图像采集卡。 DS4004HC图像采集卡本测试系统采用的是海康威视公司的DS4004HC型号的视频采集卡,DS4004HC系列压缩板卡是海康威视的第三代视音频压缩卡。 它采用高可靠性、低功耗的视频处理器,可用于音视频数据流的实时采集和压缩编码。 DS4004HC型号的采集卡具有以下功能和性能: (1) DS4004HC支持4路音频输入和4路视频输入。 (2) DS4004HC采用DM642—DSP处理器实现对音视频的实时压缩。 (3) 开放的SDK使用户根据自己的需要编写应用软件。 (4) 可根据用户的需要设置编码的帧格式、码率、图像质量。 (5) 支持运动检测、OSD、LOGO和区域屏蔽以及水印技术。 (6) 预览分辨率和编码分辨率可达4CIF,进行压缩不丢帧。 采集卡如图所示: 图像采集卡 PCI2312光电隔离DI/DO卡PCI2312是一块光电隔离输入输出板,具有16路开光量隔离输入和16路开关隔离输出。 主要用于工业控制及相关领域,它的性能和功能介绍如下:(1)16路开关量输入通道,16路开关量输出通道(光电隔离)。 (2)输入输出信号最高切换频率 10KHz(方波)(3)输入输出电压为5V~24V(4)输入输出电压为5V~24V(5)工作温度:10℃~55℃(6)储存温度:20℃~80℃PCI2312光电隔离DI/DO卡如图所示: PCI2312光电隔离DI/DO卡 软件设计流程上面介绍了图像的采集工作过程,下面主要介绍一下利用软件来设计图像采集的过程。 采集图像的软件设计流程初始化是由函数InitDSPs()函数完成的。 若初始化成功,该函数返回可用的编码通道,否则返回零,表示初始化失败,可能没有找到相应的DSP模块,系统退出。 若系统初始化完成了,接着判断该采集卡有几个可用通道,并打开相应的通道,获取通道由GetTotalDSPs()函数完成,打开通道由ChannelOpen(int ChannelNum) 函数完成,该函数有一个参数,表示具体的通道号,若打开失败,直接退出系统,若成功,则返回该通道的通道句柄,以后该通道的相关操作都需要该通道句柄。 在成功初始化采集卡并打开通道的情况下,接着就设置预览模式。 设置预览模式由函数SetPreviewOverlayMode()完成,返回0表示显卡支持板卡的Overlay预览方式,并启动Overlay预览模式。 Overlay(覆盖)是一种数字视频的显示技术,它允许数字信号不经过显示芯片处理,而直接通过显存输出到显示器屏幕上。 Overlay显示模式最大的用途在于优化视频播放。 由于不同的视频有不同基准色调、亮度、对比度和饱和度,对于不同的电脑、不同的视频文件,为了获得最好的显示效果就需要对各种显示属性进行调节,普通显示模式显然无法胜任,因而就使用Overlay显示模式进行单独调节。 Overlay显示模式具有速度快、画质好、占用系统资源少等特点,特别适合于视频文件的播放。 在成功设置预览模式后就启动预览模式,启动预览由StartVideoPreview (HANDLE hChannelHandle,HWND WndHandle, RECT *rect,BOOLEAN bOverlay, int VideoFormat, int FrameRate) 函数完成 ,该函数有六个参数,HANDLE hChannelHandle表示通道句柄,是ChannelOpen()函数的返回值;HWND WndHandle,显示窗口句柄;RECT *rect,显示窗口内的矩形区域;BOOLEAN bOverlay,是否启用Overlay预览模式;* int VideoFormat,视频预览格式(目前无效);int FrameRate,视频预览帧率(PAL:125,NTSC:130)。 若函数成功则返回零,并开始预览图像,若失败则返回相应的错误号。 设置完预览模式后,整个采集卡的配置工作就完成了。 接着就等待抓拍信号,触发抓拍操作。 抓拍过程主要有两个函数来完成,int GetOriginalImage(HANDLE hChannelHandle,UCHAR*ImageBuf,ULONG*Size)和int SaveYUVToBmpFile(char *FileName, unsigned char *yuv, int Width,int Height);GetOriginalImage()用来获取原始图像yuv422格式数据,其中,HANDLE hChannelHandle表示通道句柄,UCHAR *ImageBuf表示原始yuv422格式图像指针,ULONG *Size表示原始yuv422格式图像尺寸,函数调用前是ImageBuf的大小,调用后是实际图像所占用的字节数。 而函数SaveYUVToBmpFile()完成图像格式转换并将图像数据保存到硬盘上。 其中char *FileName表示要保存的图片文件名及路径,unsigned char *yuv表示yuv422格式图像指针,int Width表示保存图像宽度,int Height表示保存图像高度,图片的宽度和高度是由具体的采集卡决定的,本系统使用的采集卡DS4004HC,则所抓图的宽为704个像素,高为576个像素。 若用户程序调用该函数成功,则会在指定文件路径上生成指定文件名的24位bmp文件。 第三章 数字图像处理的基本理论 本章主要介绍了数字图像处理的基本理论,包括数字图像处理的基本知识、图像表示方法之间的转换、图像平滑、腐蚀膨胀等基本理论以及图像处理的工具软件Matlab的介绍。 这些关于数字图像的基本理论是后面数字图像处理实现过程的理论指导。 数字图像处理的基本知识 数字图像的表示方法(1)彩色图像彩色图像不仅有亮度信息,还包含颜色信息。 彩色的表示方法很多,最常见的是三基色模型,例如RGB(Red/Green/Blue,红、绿、蓝)三基色模型,利用RGB三基色可以混合成任意颜色。 因此,RGB模型在各种彩色成像设备和彩色显示设备中使用,常规的彩色图像也都是用RGB三基色来表示的,每个像素包括RGB三基色数据,每个基色用1个字节(8位二进制位)表示,则每个像素的数据为3个字节(即24位二进制位),这就是人们常说的24位真彩色。 (2)灰度图像灰度图像是数字图像的最基本形式,灰度图像可以由黑白照片数字化得到,或从彩色图像进行去色处理得到。 灰度图像只表达图像的亮度信息而没有颜色信息,因此,灰度图像的每个像素点上只包含一个量化的灰度级(即灰度值),用来表示该点的亮度水平,并且通常由一个字节(8个二进制位)来存储灰度值。 如果灰度值用1个字节表示,则可以表示的正整数范围是0~255,也就是说,像素灰度值取值在0~255之间,灰度级数为256级。 注意到人眼对灰度的分辨能力通常在20~60级,因此,灰度值存储以字节为单位既保证了人眼的分辨能力,又符合计算机数据寻址的习惯。 在特殊应用中,可能需要采用更高的灰度级数,例如CT图像的灰度级数高达数千,需要采用12位或16位二进制位存储数据,但这类图像通常都采用专用的显示设备和软件来进行显示和处理。 (3)二值图像 二值图像(Binary image)是指每个像素不是黑就是白(即每个像素值只有两种选择0或255),其灰度值没有中间过渡的图像。 其中像素为0代表黑,像素为255代表白。 (1)RGB模型RGB模型是最典型最常用的面向硬件设备的彩色模型,它与人的视觉系统结果密切相连。 根据人眼结构,所有颜色都可以看作是三个基本颜色——红(R,red),绿(G,green)和蓝(B,blue)的不同组合。 CIE所规定的红绿蓝这三种基本色的波长分别为700nm。 RGB模型可以建立在笛卡尔坐标系统里,其中三个轴分别为R、G、B。 : RGB彩色模型RGB模型的空间是个正立方体,原点对应黑色,离原点最远的顶点对应白色。 在这个模型中,从黑到白的灰度值分布在从原点到离原点最远顶点间的连线上,而立方体内其余各点对应不同的颜色,可用从原点到该点的矢量表示。 对于一般的RGB分量中的某一分量,其取值范围为[0,255]。 但为方便起见,总将立方体归一化为单位立方体,这样所有的R,G,B的值都在区间[0,1]之中。 根据这个模型,每幅彩色图像包括三个独立的基色平面,或者说可以分解到三个平面上。 (2)HSV模型HSV是指Hue(色相)、Saturation(饱和度)和Value(值或明度)。 HSV模型的三维表示从RGB立方体演化而来。 设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。 六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。 HSV彩色模型H参数表示色彩信息,即所处的光谱颜色的位置。 该参数用角度量来表示,红、绿、蓝分别相隔120度。 互补色分别相差180度。 纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。 S=0时,只有灰度。 表示色彩的明亮程度,范围从0到1。 有一点要注意:它和光强度之间并没有直接的联系。 圆锥的顶面对应于V=1. 它包含RGB模型中的R=1,G=1,B=1 三个面,所代表的颜色较亮。 色彩H由绕V轴的旋转角给定。 红色对应于角度0176。 ,绿色对应于角度120176。 ,蓝色对应于角度240176。 在HSV颜色模型中,每一种颜色和它的补色相差180176。 饱和度S取值从0到1,所以圆锥顶面的半径为1。 在圆锥的顶点(即原点)处,V=0,H和S无定义,代表黑色。 圆锥的顶面中心处S=0,V=1,H无定义,代表白色。 从该点到原点代表亮度渐暗的灰色,即具有不同灰度的灰色。 对于这些点,S=0,H的值无定义。 可以说,HSV模型中的V轴对应于RGB颜色空间中的主对角线。 在圆锥顶面的圆周上的颜色,V=1,S=1,这种颜色是纯色。 图像平滑主要目的是减少噪声。 图像中的噪声种类很多。 对图像信号幅度和相位的影响十分复杂,有些噪声和图像信号互相独立不相关,有些是相关的,噪声本身之间也有些相关。 因此要减少图像中的噪声,必须针对具体情况采用不同的方法,否则很难获得满意的处理效果。 图像中的噪声往往和信号交织在一起,尤其是乘性噪声。 如果平滑不当,就会使图像本身的细节如边界轮廓,线条等变得模糊不清,从而使图像降质;所以图像平滑过程总是要付出一定的细节模糊代价。 如何既能平滑掉图像中的噪声,而又尽量保持图像细节即少付出一些细节模糊代价是图像平滑研究的主要问题之一。 椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。 所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。 中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。 方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。 二维中值滤波输出为g(x,y)=med{f(xk,yl),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。 W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。 并且中值滤波适合处理椒盐噪声(黑白亮点)。 由于中值滤波是非线性运算,在输入和输出之间的频率上不存在一一对应关系,故不能用一般线性滤波器频率特性的研究方法。 设G为输入信号频谱,F为输出信号频谱,定义H=G/F为中值滤波器的频率响应特性,实现表明H是与G有关,呈不规则波动不大的曲线,其均值比较平坦,可以认为信号经中值滤波后,传输函数近似为1,即中值滤波对信号的频域影响不大,频谱基本不变。 均值滤波能消除图像中的高频分量,对低频分量没有影响。 均值滤波也称为线性滤波,均值滤波采用模板计算的思想,模板操作实现一种邻域运算,即某个像素点的结果不仅与本像素灰度有关,而且与其邻域点的像素值有关。 在实际应用中,要根据不同的需要选择使用不同的模板尺寸,如3*5*5等。 最简单的均值滤波是将原图中的一个像素的灰度值和它周围邻近8个像素点的灰度值相加,然后将所求的平均值作为新图中的该像素的灰度值。 邻域平均法用数学公式表达:设f(i,j)为给定的含有噪声的图像,经过邻域平均法处理后的图像为g(i,j),则g(i,j)=∑f(i,j)/N,(i,j)∈M,M是所取邻域内各邻近像素的坐标,N是邻域中所包含的临近像素个数。 与中值滤波相比均值滤波适合处理高斯噪声(随机噪声)。 由于本文处理的水杯在图像的中间位置,不会出现在边缘上,所以选择3*3均值滤波和5*5均值滤波。 图像在平滑处理之后,会出现图像边缘和图像轮廓模糊的情况。 为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。 图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。 从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。 但要注。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。