如何检测和纠正位图中的虚线或形状?

时间:2009-12-01 09:01:43

标签: image-processing bitmap raster

我想找到一种能够在位图中找到折线或形状的算法。考虑一种情况,我有一个只有两种颜色的位图,背面和白色(着色书中使用的图像),有些曲线和线条应该相互连接,但由于一些扫描错误,白色位代替黑色的。我该如何检测它们? (完成这项工作后,我想将位图转换为矢量文件。我想使用potrace算法)。

如果您有任何想法,请告诉我。

3 个答案:

答案 0 :(得分:2)

这是一种治愈小间隙的简单算法:

首先,使用一个过滤器,当其八个邻居中的任何一个是黑色时,会创建一个黑色像素。这将增加你的总体轮廓。

接下来,使用细化滤镜来消除额外轮廓,但仅留下填充的间隙。

有关一些过滤器和参数,请参阅此文章:Image Processing Lab in C#

答案 1 :(得分:1)

最简单的方法是使用名为closing的形态学技术。 只有当线条中的间隙相对于不同线条彼此接近的距离非常小时,这才有效。

如何选择结构化元素来执行结束也可以使性能更好或更差。

维基百科的文章非常理论化(或数学化),因此您可能希望转向Google或任何有关图像处理的书籍,以便更好地解释它是如何完成的。

答案 2 :(得分:1)

也许Hough Transform可以帮到你。额外:您获得了矢量文件的线条参数。