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

标签 c# opencv detect emgucv

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

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

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

谢谢!

最佳答案

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

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

您可以使用 PCA 找到形状的方向,它在箭头上非常有效。然后,为了找到终点,您只需分析对象的左右部分。

对于检测线,您也可以使用 Hough,但如果您不熟悉它,则需要一些时间来使用阈值才能获得您想要的结果。

关于c# - 如何使用 Emgu CV 检测图像中的箭头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22043911/

相关文章:

delphi - 如何将 BLOB 流中的任意图像加载到 TImage 中?

c# - 使用 javascript/jQuery 回发

c# - C# 中的存在类型?

c# - 选择到数组中

opencv - 连续处理前一帧和当前帧

python - 计算图形的方向以将其拉直(在Python中)

c# - 使用 XSLT 将 XML 转换为 HTML

c++ - 改变h值的颜色

oracle - 检测所有已安装的 Oracle 版本

c# - 在 C#/Windows 窗体中检测应用程序启动时的 shift 键