OpenCV - 从图表中提取箭头
OpenCV - Extracting arrows from chart
我正在尝试在流程图上执行 OpenCV 以提取结构(图 1)。所有图像都是计算机生成的。我可以很好地提取块,并将它们从图像中移除,这样我们就只剩下箭头了(图 3)。
问题是我不确定如何提取连接。 IE。当我应用 HoughLinesP 时,每个箭头都会生成大量线条(图 2)。有谁知道一种提取线条的方法,这样我提取的每个箭头只得到一个 'line'?
由于图像没有噪声,使用霍夫变换不是最优的。
我会将图像二值化,以便从图像中获取所有非白色像素。
然后,使用匹配过滤器,我会找到垂直和水平线段。
四个方向的箭头都可以用类似的方式找到。
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
我正在尝试在流程图上执行 OpenCV 以提取结构(图 1)。所有图像都是计算机生成的。我可以很好地提取块,并将它们从图像中移除,这样我们就只剩下箭头了(图 3)。
问题是我不确定如何提取连接。 IE。当我应用 HoughLinesP 时,每个箭头都会生成大量线条(图 2)。有谁知道一种提取线条的方法,这样我提取的每个箭头只得到一个 'line'?
由于图像没有噪声,使用霍夫变换不是最优的。
我会将图像二值化,以便从图像中获取所有非白色像素。 然后,使用匹配过滤器,我会找到垂直和水平线段。 四个方向的箭头都可以用类似的方式找到。
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