图像测量专题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像测量专题实验
班级:自动化95
学号:09054101
姓名:高佳
日期:2012-10-30
一、实验目的
1.熟悉XAVIS平台使用方法
2.学习基于MATLAB的基本图像处理技巧
二、实验内容:
(1)机器视觉平台实验(面积测量)教材P178 实验T2;
详细内容是:绘制带有填充色的连通区域,并使用XAVIS平台获取该图像,计算连通域的面积。
(2)机器视觉平台实验(缺陷检测)教材P193 要求啤酒瓶身包装缺陷检测,自行寻找合格和不合格的图片。
详细内容是:实质在于另一幅图片相对于标准图片的匹配程度是否在给定范围内。因此在满足实验目的的要求下,可以采用软件中已有的瓶盖图像,也可以采用自己手绘而成的图片。
程序:
2.1面积测量
2.1.1要求
输入图片,利用XAVIS软件求取多边形面积
分析:
该处理的主要思路是:本实验在于使用XAVIS平台计算联通域的面积。因此包括两个部分:带有填充色的联通域图片的获取、图片中联通域面积的计算。
在这里需要指出的是,对于图片的获取而言,在使用XAVIS平台摄像头调整好对手绘图片的焦距和位置后,需注意调用“动态摄像”程序,并在程序中添加保存语句,将图片保存在特定路径下,执行程序后,在对摄像头进行遮挡时,拍照完成同时保存在指定路径下。
在面积计算的程序中需要指出的是:1.需给出所处理的图片的路径,2.对采集的图片进行阈值分割,需要在调用阈值分割函数之时考虑不同算法的优劣和分割阈值的调整,3.还有就是如果需要最终面积计算结果的图片,就在程序中添加相应的保存程序即可。
2.1.2程序
连通域面积计算的代码:
readimage(C:\1.bmp,i1); //从采集图像的保存路径处获取填充色的联通域图片showimage(i1);
convertgray(i1,i1); //对图像进行灰度转化处理
thresholdcovert(i1,i2,fixthreshold,30); //对图像阈值分割,采用算法是fixthreshold,阈值是30 showimage(i2);
pointinvert(i2,i22); //对图像进行插值,获得连通图形
showimage(i22);
contourareas(i22,1,0,i3,num,x,y,area);
showimage(i3);
for(i=0,num,1);
h=(x[i]+20.0);
v=(y[i]+0.0);
cstringformat(“%1f,area[i]”,s);
gentext(h,v,15,s,red); //面积结果显示
endfor();
writeimage(C:\60.bmp,i3); //将结果图像保存在指定的路径下
2.1.3结果及分析
图2 面积测量结果
根据案例程序,首先读入图片文件,通过阈值分割的方法得到二值图像,随后利用countorarea函数对图像的轮廓进行提取,并计算轮廓个数,左上角x,y 坐标及轮廓面积。经过计算,该图片中被测对象面积为29796.0。
2.2缺陷监测
2.2.1要求
选取标准图片以及待检测的缺陷样本,通过XAVIS软件进行缺陷监测。
分析:
本实验在于使用XAVIS平台对获取的图片进行缺陷检测,实质就是使用获取的图片和标准的的图片进行模板匹配,实际上就是做差。如果匹配结果在阈值范围内,那就说明合格;否则视为不合格。
正如上文中对本实验实质的介绍,这里采用绘图绘制一幅简单的图片,然后再添加一些“缺陷”,用来测试本实验。但是其实质是一样的。因此这部分无
需使用硬件进行图片采集的过程。
在缺陷检测的程序中需要指出的是:1.需给出所处理的两幅图片的路径。
2.2.2程序
readimage(D:\aa\d1.bmp,rgbimage_std);
convertdepth24to8(rgbimage_std,rgb2grayimage_std);
showimage(rgbimage_std);
readimage(D:\aa\d.bmp,rgbimage_defect);
convertdepth24to8(rgbimage_defect,rgb2grayimage_defect);
graystatdefect(rgb2grayimage_std,rgb2grayimage_defect,10,result);
if(result=1);
gentext(5,5,50,合格,black);
endif();
if(result=0);
gentext(5,5,50,不合格,black);
endif();
2.2.3结果及分析
缺陷监测过程主要是基于graystatdefect函数进行,由于函数已被开发者封装,无法其具体实现原理,分析示例程序上下文,猜测该灰度差统计函数的实现主要是根据源图像以及待测图像的灰度直方图在各灰度级上的差值与给定的阈值进行比较(例如求其均方误差和),从而实现缺陷监测。
以下是成功检测到不合格的图像(含有标准图像)
2.3图像处理基本操作
2.3.1要求
基于MATLAB,实现图像显示,读写,像素统计处理,图像文件I/0,颜色空间转换。
2.3.2实验分析
本实验在于使用matlab进行简单的图像处理,理解图像处理的基本知识。包括的知识有:图像的显示、读写和统计、颜色空间转化。处理的方法是采用调用基本的matlab函数实现,其中:
⏹imshow():用于显示图像(参数可以是M*N的像素矩阵,也可以是图像
文件名)
⏹imread():根据文件名读取图像文件,返回值是像素矩阵。
⏹imwrite():将图像矩阵按照指定的编码格式写入文件。
⏹imhist():绘制图像的灰度直方图。
⏹rgb2hsv():转换颜色空间,将RGB空间转为HSV/HIS空间。
H指hue(色相)、S指saturation(饱和度)、V指value(色调)。
HSV空间对应于一个圆锥形色彩空间,其中,H为色角,S为底面半径,I为母线长度;
从RGB 到HSL 或HSV 的转换
设(r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在0 到 1 之间的实数。设 max 等价于 r, g 和 b 中的最大者。设min 等于这些值中的最小者。要找到在HSL 空间中的(h, s, l) 值,这里的 h ∈[0, 360)度是角度的色相角,而 s, l ∈
[0,1] 是饱和度和亮度,计算为: