我目前正试图找到一种在二进制图像中存储单独“分支”的简洁方法。这个小动画解释了它:
当我沿着分支走时,我需要收集构成单像素宽分支的像素索引。当我到达交叉点时,它应该分开并存储新的分支。
实现它的一种方法是创建一个3x3子区域,找出其中是否有白色像素,相应地移动它,如果有两个以上则创建一个连接点。始终存储上一个子区域,以便可以使用它确保我们不会移动到我们已扫描的区域。 虽然弄清楚我会怎么做但有点棘手。
我基本上需要根据“线/曲线”层次重新排序像素。然后,应用程序的另一部分将重绘数字,这些数字通过在点之间创建线条而在内部工作,因此需要将它们“排序”。
答案 0 :(得分:1)
我不知道你是否可以在你的情况下应用它,但你应该看一下cv :: findContour。 你会得到一个点数矢量。
http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html