数字图像处理课程设计报告工件尺寸图像测量docWord文档下载推荐.docx
《数字图像处理课程设计报告工件尺寸图像测量docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计报告工件尺寸图像测量docWord文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
一般这种测量可以通过千分尺或游标卡尺完成。
但对于很多易碎或易变形的零件,类似的测量几乎难以完成。
在这种场合,一般要求采用非接触测量方法,图像测量就是其中的方法之一。
试设计一应用软件,能够对标准形状的零件进行图像测量。
要求完成功能1、能够读取和存储图像,对图像进行去噪和对比度增强;
2、能够根据控制点对图像失真进行几何校正;
3、根据控制点对图像进行定标,建立像素与实际尺寸之间的对应关系;
4、对于非标准零件,利用人工鼠标操作,测量任意指定点间的距离;
5、对圆形标准零件进行自动尺寸测量(提高部分);
6、设计软件界面。
二.课程设计原理及设计方案2.1设计原理的选择2.1.1滤波去噪由于图像中不可避免地存在噪声,故在图像预处理过程中需要对噪声进行滤除。
一些常见的噪声有椒盐噪声、脉冲噪声、高斯噪声等。
椒盐噪声是含随机出现的黑白亮度值,脉冲噪声是只含有随机的白强度值(正脉冲噪声)和黑强度值。
与强两者不同,高斯噪声是含有亮度服从高斯或正态分布的噪声。
图像的平滑处理在空间域和频域采取不同的方法,空间域滤波是在图像空间借助模版进行邻域操作,一般分为线性和非线性两类。
1.线性平滑滤波器对去除高斯噪声有很好的效果,大多数情况下对其他来性的噪声也有很好的效果。
最简单的线性滤波是均值滤波,即对局部进行均值计算,每一像素点的灰度值用其邻域内的各点灰度值的均值来置换。
但是邻域N的大小控制着滤波程度,大尺度滤波器会加大滤波程度,作为消除大噪声的代价,大尺度滤波器会导致细节的损失和计算量的增加,使得图像的尖锐部分变模糊。
2.中值滤波法是一种较好的非线性滤波方法,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值,在去除图像脉冲噪声、椒盐噪声的同时,又能保留图像的边缘细节,有效地保持图像轮廓的清晰。
设Gx,y表示原始图像在x,y处的灰度值,选用N*N的正方形窗口(N一般取3或5),Fx,y表示滤波后的图像在x,y处的灰度值,Med{}表示对窗口求中值,则中值滤波的输出可表达为2.1.2几何校正数字图像几何变形是指图像上的像元在图像坐标系的坐标与其在实际元件等参考坐标系之间的坐标不一致,从而导致图像行列式不均匀、像元大小和位置与实际对应不准确、形状不规则等。
图像的总体几何变形是平移、缩放、旋转、偏扭、弯曲及其其他变形的综合作用结果。
对于图像的几何校正有直接和间接两种方法,其关键环节在于一是像素坐标变换;
而是像素亮度值冲采样。
在对工件进行图像采集时,主要涉及到的几何变形是投影畸变,形象的说获得的图像就像是影子近大远小,因此只要在采集图像时设置四个控制点,根据我们已知控制点的标准图像和获得的畸变的控制点图像建立传输函数,利用传输函数对元件的畸变图像反变换获得理想的元件图像。
2.1.3测量定标元件尺寸的图像测量,是建立在实际尺寸与像素关系已知的基础上的,通过检测元件的像素个数,以及像素与实际尺寸的对应关系(图像分辨率)求得元件的实际尺寸。
对于扫描仪等设备获取的图像,因为其设备为固定高度且步进电机匀速扫描采集信息,则可以获取元件图像的像素分辨率(像素/英寸dpi),然后直接利用此分辨率进行测距计算。
而大部分图像,包括相机、摄像头获取,或者从屏幕上截取得到,其图像分辨率已经发生变化,或者根本没有任何实际意义,这是就需要对图像进行尺寸定标。
在获取元件图像的同时,放置已知具体实际尺寸的标定物,在获取图像后与元件图像一起进行相同的几何校正等一系列操作,最终求的其像素数,从而获得像素数与实际尺寸的比例关系,设为分辨率dpi,进行元件实际尺寸的测量计算。
2.1.4增强对比度和二值化处理经过几何校正后的图像则可以用于尺寸测量,但由于背景的影响,在检测元件边缘时会有较大的误差,因而更好的办法是增强对比度后设置门限,对图像进行二值化处理。
1.在数字图像处理中,二值图像占有非常重要的地位,二值化后的图像更容易检测元件图像的边缘。
图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。
其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。
2.为了方便选取二值化所需的阈值,我们希望图像的直方图是一个标准的双峰一谷,则直接在谷底处取得阈值,使一侧为0另一侧为1,因此需要对图像首先进行对比度增强。
如果原图象fx,y的灰度范围是[m,M],我们希望调整后的图象gx,y的灰度范围是[n,N],利用MATLAB图象处理工具箱中提供的imadjust函数,可以很容易实现上述线性变换的对比度增强。
2.1.5投影法自动测距投影法就是统计目标像素在水平方向(x轴)和竖直方向(y轴)上累计的个数,然后画出统计图形。
根据本次统计图形的零极点判断元件图像的边缘,测得边缘之间的距离即为所求元件的尺寸。
对于统计图像峰值的判断,可以采用一阶甚至二阶差分,判断统计图像两侧异号或者突变的点,即元件的边缘位置。
2.1.6手动两点测距应用最简单方法,测得图像上两点像素的坐标,计算出两点间的像素数,然后根据读取或者测得的图像分辨率计算出任意两点间距离。
2.2设计方案根据以上设计原理的选择,结合MATLAB的图像处理工具箱函数,大量调用已有函数进行设计,通过各项程序的最优组合,不但完美完成任务,而且使得程序更加优化,运行速度更快。
以下为程序设计选取的重要的程序工具。
2.2.1中值滤波Imedfilt2I,[33];
滤波器的末班为3*32.2.2几何校正cpselectI,I;
选取控制点mytformcp2tforminput_points,base_points,projective;
建立传输函数IimtransformI,mytform;
对图像反变换2.2.3截取标定或目标JimcropI;
从图像上截取需要的标定物或元件图像2.2.4对比度增强IimadjustI,stretchlimI;
增强图像对比度2.2.5二值化TgraythreshI;
获取阈值Iim2bwI,T;
通过阈值二值化处理2.2.6获取像素点坐标[x,y]ginput2;
通过鼠标点击获取像素点坐标2.2.7距离计算DabsD2-D1/dpi*2.54;
通过零点或极值点距离获得尺寸Dsqrtx1-x22y1-y22/dpi*2.54;
通过量像素点坐标求得距离2.3设计流程图关闭存储一键预处理复位增强对比度打开图像中值滤波几何校正选取标定截取目标二值化摄像头自动测距采点测距三.课程设计的步骤和结果3.1图像文件管理设计的GUI界面如下每段程序写在sethandles.edit6,String,...;
与sethandles.edit6,String,OK;
之间,则通过状态窗口程序的执行情况一目了然。
3.1.1打开/拍摄1.摄像头启动程序globalvid;
globalP;
标志位P8;
axeshandles.axes1;
vidvideoinputwinvideo,1,YUY2_320x240;
previewvid;
2.打开/拍摄程序sethandles.edit6,String,...;
holdoff;
globaln;
n0;
sethandles.radiobutton1,value,1;
sethandles.edit1,String,10;
sethandles.edit3,String,0;
sethandles.edit4,String,0;
sethandles.edit5,String,0;
ifP8globalvid;
Igetsnapshotvid;
imshowI;
sethandles.edit7,String,“摄像头拍摄图像”;
else[filename,pathname]uigetfile{*.jpg;
*.bmp;
*.tif;
*.*},打开图像...;
ifisequalfilename,0|isequalpathname,0errordlg图像文件未找到,FileError;
elseglobalfile;
globalI;
P1;
file[pathname,filename];
Iimreadfile;
sethandles.edit7,String,“元件的原始图像”;
endendsethandles.edit6,String,OK;
当标志位P为0时打开图像,P为8是通过摄像头拍摄图像。
打开或拍摄的同时,进行标识为设置和一些现实的清零。
3.1.2复位程序sethandles.edit6,String,...;
globalfile;
ifP8axeshandles.axes1;
clareset;
elseifP0errordlg请先打开图像,Warning...;
elseP1;
重新打开未经处理的图像或者关闭拍摄的图像重新拍摄,与打开相似,清空一些数据。
3.1.3存储和关闭1.存储的程序s