如何使用OpenCV提取和简化线条?

4
我有一个骨架化图像。如何使用OpenCV提取和简化右侧图片上的线条?
谢谢。
更新:
我已经得到了骨架的节点。
现在,如果它们在同一条直线上,我需要连接这些点。我该怎么做?
之后,简化这个路径。我认为我知道如何做,但如果您有任何想法,请给我建议。

我很难理解你是如何过滤(逻辑上而非编程上)其他行的。你能再解释一下吗? - Nicola Pezzotti
请查看更新。抱歉,我的英语不是很好。 - Yaroslav Veremenko
@NicolaPezzotti 我忘记通知你了。 - Yaroslav Veremenko
1个回答

4

基本上,您需要根据骨架图像的结点创建一个图形。图形的顶点将对应于结点集。

我建议您使用以下算法提取图形的边缘:

对于每个结点,请使用8邻域(8N)访问紧邻结点的所有像素。将所有的骨架像素放入队列中,并继续寻找结点,直到队列为空。一旦队列为空,您就可以得到给定结点的所有边缘。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接