如何使用Emgu CV检测图像中的箭头?

时间:2014-02-26 14:10:25

标签: c# opencv detect emgucv

我正在做一些基本的图像处理来检测多边形和一些OCR来处理使用C#上的Emgu CV在白板上绘制的流程图。

但是现在,我在任何方向上遇到了困难检测箭头(带有尖头<或>的直线)。 我想知道是否有人知道我可以用来检测箭头及其指向结束的方法。从那时起,我可以找到附近的物体并继续进行更多处理。

我会非常感谢任何人可能提出的建议。

谢谢!

1 个答案:

答案 0 :(得分:1)

有很多方法可以进行对象识别。为了知道选择哪一个,你应该有以下信息:我的物体(箭头)可以有不同的形状(宽度,高度......)?形状是固定的,但我的对象可以有旋转,平移和缩放?其他对象是什么?

对于检测箭头,您可以使用findContours然后使用不同的特征来区分箭头的轮廓,例如周长,面积,密度,minAreaRect ...您还可以对轮廓进行多边形化并观察每个线段的参数,计算段之间的角度......(可能对你的情况来说有点太复杂了)。

您可以使用PCA找到形状的方向,它可以在箭头上很好地工作。然后,为了找到结束点,您只需要分析对象的左右部分。

对于检测线条,你也可以使用霍夫,但如果你不熟悉它,你需要一些时间来玩阈值才能得到你想要的结果。