《项目一》规则区域上的漏油检测

来源:互联网 发布:程序编程范式是什么 编辑:程序博客网 时间:2024/06/02 18:24

目标:盖板轮廓上会有漏油,如何检测出大于阈值的漏油。

【步骤一】采用patch检测的思想,将整个轮廓采样成50*50像素大小的patch图像。

方法:找到外轮廓contour→采样contour里的点→形成rect。

tips:findcontours函数,参数可查,注意输入的二值化图像最外一圈应为黑,否则最外一圈将被找为最大轮廓。

关键代码:


【步骤二】在patch图像内,进行特征点寻找,因为漏油属于不规则,而没有漏油的轮廓patch可能找不到特征点,找到的特征点通过后期计算可以筛查为漏油。

关键代码:



tips:keypoint的数据结构--各种特征点。

【步骤三】计算正常轮廓宽度和特征点上的轮廓宽度,比较判断是否漏油。

关键代码:

①计算特征点周围的轮廓宽度


【调用了定义的计算某点处的轮廓宽度】

②计算某点处的轮廓宽度,在该点处沿水平、竖直方向遍历,可求得灰度值为0的水平长度数值或数值长度,取最小的。

③计算patch中的轮廓宽度,统计二值化图像中灰度值为0的像素数量,其中指针的使用:


八位灰度图的指针格式为 uchar *

④计算patch中轮廓的角度,以纠正①中计算的漏油处宽度角度偏差的问题。



求的角一后,可以根据①中求的竖直红色长度转化为真正的漏油处轮廓宽度。
原创粉丝点击