我想找到一种能够在位图中找到折线或形状的算法。考虑一种情况,我有一个只有两种颜色的位图,背面和白色(着色书中使用的图像),有些曲线和线条应该相互连接,但由于一些扫描错误,白色位代替黑色的。我该如何检测它们? (完成这项工作后,我想将位图转换为矢量文件。我想使用potrace算法)。
如果您有任何想法,请告诉我。
答案 0 :(得分:2)
这是一种治愈小间隙的简单算法:
首先,使用一个过滤器,当其八个邻居中的任何一个是黑色时,会创建一个黑色像素。这将增加你的总体轮廓。
接下来,使用细化滤镜来消除额外轮廓,但仅留下填充的间隙。
有关一些过滤器和参数,请参阅此文章:Image Processing Lab in C#
答案 1 :(得分:1)
最简单的方法是使用名为closing的形态学技术。 只有当线条中的间隙相对于不同线条彼此接近的距离非常小时,这才有效。
如何选择结构化元素来执行结束也可以使性能更好或更差。
维基百科的文章非常理论化(或数学化),因此您可能希望转向Google或任何有关图像处理的书籍,以便更好地解释它是如何完成的。
答案 2 :(得分:1)
也许Hough Transform可以帮到你。额外:您获得了矢量文件的线条参数。