2 集成块姿态检测
2.1 集成块管脚检测和定位
对图像进行预处理后,可以清晰的看到管脚和集成块上的数字被从背景中分割出来。集成块管脚是一片连通的白色区域,而其所占的面积要比其他无用信息所占的面积要大的多,故采取面积法对集成块管脚位置进行检测。
二值图像中的连通分量的面积实际上就是连通像素点集中像素的个数,也就是区域边界类包含像素点的数目。设二值图像f(x,y)的连通分量ψ(x,y)的大小为M×N,其中
面积法是通过编写程序在整幅图像中搜索白色区域,同时记下白色区域的面积(像素点个数)和个数及其四个边角的坐标。将所统计到的面积相加,除以白色区域的个数,即可得到一个阈值,由于集成块管脚所占的面积要比其他无用信息所占的面积要大的多,所以面积平均所得到的阈值可以将较小的区域去除,从而保留有用的集成块的管脚信息。将大于这一阈值的面积区域用其四个边角的坐标连线所成的矩形框定,便可以完成集成块的管脚定位。
处理过后的效果如图4所示,图中的红色方框的作用为定位管脚位置。
2.2 集成块倾斜角度的测定
在工业应用中,为了能让机械臂很好的将集成块从流水线上夹取下来,必须知道集成块的边缘是否与流水线平行,或知道其倾斜的角度对其进行姿态纠正,这就需要对集成块在流水线上的姿态进行检测,知道集成块在流水线上的与水平方向的倾斜角度,确定一个物体的倾斜角度。本文的创新在于使用了中心点斜率法。
中心点斜率法:假设图像中集成块每个管脚的中心点的坐标为{(xl,y1),(x2,y2),…,(x8,y8)},计算每一个管脚与其同边管脚的斜率{ll,l2,…,ln},再对所有的斜率求其算术平均值
这时得到的是弧度,要把它转化为角度
ω就是集成块的倾斜角度。
由于中心点斜率法将同边管脚两两之间的斜率都计算入内,故精确度较高,但程序复杂,计算量较大,程序运行时间长,不适合在高速的流水线上使用。针对这一情况,提出了对中心点斜率法的改进算法。
改进算法与原先算法的最主要的区别是改进后的算法并不是将所有同边管脚两两之间的斜率都算出来,而是先确定一点,记为{x0,y0},以这一点为基础,计算它与其他管脚的斜率
(6)
如果是同一边管脚的话,他们之间的斜率几近相等。反之,则斜率相差很大。因此,通过对斜率的比较,便可以将同边管脚划分在一起,这时只有三个斜率值,再对它们的斜率进行算术平均,同原算法便可得到集成块的倾斜角度。
改进后的算法的计算量要比原算法少了很多,实时性更强,因而它的实用性更强。为了测试程序测得角度的准确性,用Photoshop对原图像进行了旋转,角度分别为5,10,30,45,90度,以下是角度识别对比表。