2016-11-09 253 views
2

enter image description here如何检测OpenCV中的手套手指缺陷?

我应该如何检测在手套的手指上是否存在缺陷(如上图中所示 - 这称为“捆绑错误”)?

我已经提取了每个指尖(使用轮廓和轮廓逼近),算法可以识别手套的形状是否不完美。

enter image description here

但它不会在手套指尖检测一阕。

enter image description here

我如何可以检测到这种使用OpenCV的?

+0

你尝试过计算轮廓的边缘吗? – Marat

+0

我做到了。大多数情况下,即使尖端折叠,我也会得到一个边缘(尖端)。 – Ivantha

+0

区分缺陷的一个明显特征是其强度。您可以尝试在不同级别设置阈值,并且如果二进制版本不是完美的形状,这是一个缺点。但这是一个非常简单并且可能会在大多数情况下失败的问题。您应该找到充分利用他们的特点。如果您的手套既有完美又有破损的手套的大量数据,您可以尝试使用机器学习算法。但这是一个复杂且非常具体的案例,您无法为此找到预定义的方法,您应该创建自己的方法。 –

回答

2

分割每个手指,然后将颜色或灰度级的分析应用于每个手指:良好的手指具有几乎相同的灰度级/颜色,而有缺陷的手指具有黑色部分。

为了段手指:每个手指中发现的地标:B1(碱1),B2(基数为2)和Ť(尖端);看到他们在下面的图像紫色。

enter image description here

在我看来,你已经有了这些标志,因为你画的蓝色图形。

一旦你有他们,你确定这些边界的区域:B1B2和红色的轮廓,你已经有了之间的直线(红色轮廓绘制这里https://i.stack.imgur.com/hXfoC.jpg)从B1开始和持续到B2T

enter image description here

然后你适用于每个区域的分析,例如标记为有缺陷的所有低于阈值的强度的像素。