新闻中心

EEPW首页>测试测量>设计应用> 机器视觉在大型工件自动探伤检测中的应用

机器视觉在大型工件自动探伤检测中的应用

作者: 时间:2013-05-30 来源:网络 收藏


Step1:初始化边缘点位置EdgeDot=(col, vol), col=0,vol=0。定义边缘图figureedge数组,大小为nWidth×nHeight,初始化为全255(非边缘);
Step2:在非最大抑制所得图中查看EdgeDot点的值,并赋给IfEdge;
Step3:if(IfEdge=noedge)then Step7;
Step4:查看梯度图中EdgeDot点的值,并赋给magni- tude;
Step5:if(magnitude Step6:在记录结果的边缘图中记下EdgeDot点并设置非最大抑制图对应点值为noedge,然后在梯度图中查看EdgeDot点的八邻域点梯度magnitudenear,若magnitudenear>h1,重复执行Step6, 否则执行Step7;
Step7:col++;
if(col>=nWidth) then vol++;
if(vol>=nHeight) then end;(程序结束)
执行Step2。

算法中门限的选择直接影响着Canny算子的性能。

作者用Visual C++ 6.0实现了该算法,主要包括:图象平滑(image smoothing,这里使用高斯滤波)、微分(differentiation)处理、非最大值抑制non-maximum suppression)、边缘阈值化(edge thresholding)等步骤。选取CT图像序列中的一切片(如图1所示)该图像分割算法在实际应用中效果如图1所示:


图1 边缘提取效果图

4 工业CT图像的自动测量

在工业CT图像中不同区域的物质表现为灰度值异于周围物质的灰度值。所以,研究者们常通过边缘检测技术和图像分割技术把这个区域分离出来,使之成为一个独立的分析对象,然后再进行准确测量。目前,常见的面积测量大都依赖于手工完成,主要通过用户使用鼠标点击所测面积区域的周围来得到一个闭合的区域,将该区域近似为待测的面积区域,而后通过统计该区域内像素点的个数来近似计算面积。而常见的周长和极径测量也是如同面积测量一样仅能得到一个近似值。显然,这些测量方法由于人为原因或算法本身的缺点,给测量带来了较大的误差,并不具有可重复操作性,使得成批的图像测量难以实现。

因此,以下通过对工业CT图像进行准确地分割得到边缘,并在此基础上提出针对大型金属工件的CT图像面积、周长以及极径等几何尺寸的自动测量方法。

4.1 面积测量

由于区域的面积与其内部灰度级的变化无关,而只与该区域边界有关,因此只要确定了区域边界点的坐标,就可利用边界坐标来计算区域的面积。在Green定理中指出,在x-y平面内的一个封闭曲线包围的面积由其轮廓积分给定,即

(4)

其中,积分沿着该封闭曲线进行。Green公式表明,只要确定了一条封闭曲线的各点坐标,就可以根据这些坐标点计算出该曲线包围的区域的面积。

由上述原理可得到面积计算的方法如下:由于工业CT图像是一种离散化的数据形式,那么区域的边缘也是一个离散的点集,因此需要将Green定理离散化后才能计算区域的面积。Green定理的离散形式如下:

(5)

该离散形式表达式实质上是将封闭边缘曲线确定的区域看成一个多边形,并以区域中一点为中心点将其分成多个三角形,然后计算所有三角形的面积。

4.2 周长测量

区域的周长是分割出的区域的边界长度。边界通常可以用隙码、链码和面积表示。其中隙码方法表示时,测量长度过程中包含了许多的转弯,从而夸大了实际周长值;而面积方法表示时,仅统计边界点数,这样又忽略了每一个像素的边界长度,从而缩小了实际周长值;而链码方法表示时,它既考虑了每个像素的边界长度,又把转弯变成一条直线,这样周长的测量精度就提高了。边界链码测量的主要思想如下:链码是从在物体边界上任意选取的某个起始点 坐标开始的。该起始点有8个邻接点,其中至少有一个是边界点。边界链码规定了从当前边界点走到下一个边界点这一步骤必须采用的方向。由于有8种可能的方向,因此可以将它们从0到7编号[6],如图2所示。边界链码包含了起始点的坐标以及用来确定围绕边界路径走向的编码序列。
透射电镜相关文章:透射电镜原理


评论


相关推荐

技术专区

关闭