减少线的粗细

时间:2018-07-30 12:45:53

标签: java computer-vision ocr curve

请参考我之前的问题Check if a curve is closed
我想知道如何将曲线的厚度减小到单个像素。
例如,如果我有曲线的这一部分,请想象每个像素都是一个绿色正方形:
Before - thickness of many pixels
我希望能够像这样进行转换:
After - 1 pixel
(甚至是变体,只要延伸是连续的就可以)



我的输入将是在黑色背景上的白色曲线的BufferedImage。

1 个答案:

答案 0 :(得分:1)

您要寻找的算法家族称为骨架化或同质化细化。

同质细化是一种有条件的侵蚀,如果去除像素会破坏地形,则不会去除像素。

可以使用同位异化来实现骨骼化,但也可以采用其他方式。骨架化的结果是一条1像素的粗线穿过对象的中心。

这些不是要实现的简单算法。我不会解释它是如何工作的。您需要开始使用具有图像处理功能的库。不要重新发明轮子。