OpenCV - 从图表中提取箭头

时间:2015-02-20 19:44:48

标签: c++ opencv

我试图在流程图上执行OpenCV来提取结构(图1)。所有图像均由计算机生成。我可以精确地提取块,并从图像中删除它们,所以我们只剩下箭头(图3)。

问题是我不确定如何提取连接。即当我应用HoughLinesP时,每个箭头都会生成大量的行(图像2)。有没有人知道一种提取线条的方法,这样我才能得到一条线条。每个提取的箭头?

Original image HoughLinesP applied to arrows Arrows segmented from image

1 个答案:

答案 0 :(得分:3)

由于图像没有噪声,使用Hough变换不是最佳的。

我会将图像二值化,以便从图像中获取所有非白色像素。 然后,使用匹配滤波器,我会找到垂直和水平线段。 可以以类似的方式找到四个方向中任何一个方向的箭头。

过滤2像素厚度的行可能类似于:

0 0 0 0 0 0
0 0 0 0 0 0
1 1 1 1 1 1
1 1 1 1 1 1
0 0 0 0 0 0
0 0 0 0 0 0