金属件最小外界矩形测量
产品为金属件,检测产品内孔直径,以及最小外接矩形的长宽尺寸。这里使用马克拉伯的检测软件SGVision进行检测。
一、检测思路
样品是360度随机旋转的,需要使用形状匹配进行定位。定位之后使用圆形拟合,检测内圆直径。要检测最外围的尺寸可以直接使用最小外接矩形,可以直接测出产品的外围尺寸。但是这个算法耗时较长,这边如果对检测时间有要求可以使用曲线拟合找边缘弧形的最高点,因为产品边缘是对称的弧形,两点件的直接距离就是产品的最大尺寸。
二、算法设置
1、形状匹配
整个产品为模板,调整阈值以整个边缘为形状,最小相似度到0.4,角度区间设置为-180到180。

2、圆形拟合
添加算法之后首先“匹配源”选择“形状匹配#匹配变换”,边缘极性从白到黑,位置类型最前的,合格标准判断对象是直径,按照要求设置最大值最小值。

3、最小外界矩形
要检测产品的最大长宽,直接使用最小外接矩形也可以,这个合格标准只要设置的比良品大就可以,具体测出来都时要传出去额,确保算法OK就行。比较简单,但是这个耗时非常久,要2秒多。

4、其它方法
这款产品是一款对称的产品,最大尺寸应该是四边曲线的最高点两两之间的距离,根据这个思路,我们可以使用曲线拟合找到四条曲线边的最高点。具体如下
(1)根据产品特性找2个点定义一条直线,作为曲线拟合的参考直线。

(2)曲线拟合


对称边的曲线可以同样方法找到最高点,另外两边的曲线,参考直线吧定义的直线旋转90度可以获得。


4边的曲线都拟合成功之后,分别使用点间距离检测产品的最大长宽尺寸。

重新设置算法之后看看检测时间,只有600ms提高了几倍,算法还可以继续优化,减少检测时间。

这个样品检测主要是用到了曲线拟合,检测点间距,难点需要注意曲线拟合中依据的直线方位。
相关推荐
python opencv minAreaRect 生成最小外接矩形的方法
主要介绍了python opencv minAreaRect 生成最小外接矩形的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Matlab如何在图上画包围目标区域的矩形(或圆)
1.rectangle函数功能:创建二维矩形对象。 rectangle函数可以用来画矩形、椭圆、圆,画椭圆和圆时需要设置曲率。 rectangle('Position',[x,y,w,h]) 从点(x,y)开始绘制一个宽w高h的矩形,对坐标轴数据单元指定值。 rectangle(...,'Curvature',[x,y])指定矩阵边的曲率,可以使它从矩形到椭圆不同变化,水平曲率x为
多物体的长宽面积测量程序基于最小外接矩形-readme.docx
多物体的长宽面积测量程序基于最小外接矩形-readme.docx 本帖最后由 caumine 于 2013-7-29 22:22 编辑 该程序可用来测量物体长宽面积。其基本原理是将图像二值,分离出目标区域,再根据最小外接矩形,计算物体的长宽。 搜狗截图13年06月23日2301_1.png 程序界面 处理后图片.jpg 处理后的图片 程序下载地址在附件readme文件中 readme.docx
找最小外接矩形
利用opencv找图像中形状的最小外接矩形,进而可获得最小外接矩形的信息等
截取最小外接矩形
对二值图像截取最小的外接矩形,可用于测目标的长宽等信息



