请参考我之前的问题Check if a curve is closed
我想知道如何将曲线的厚度减小到单个像素。
例如,如果我有曲线的这一部分,请想象每个像素都是一个绿色正方形:
Before - thickness of many pixels
我希望能够像这样进行转换:
After - 1 pixel
(甚至是变体,只要延伸是连续的就可以)
我的输入将是在黑色背景上的白色曲线的BufferedImage。
答案 0 :(得分:1)
您要寻找的算法家族称为骨架化或同质化细化。
同质细化是一种有条件的侵蚀,如果去除像素会破坏地形,则不会去除像素。
可以使用同位异化来实现骨骼化,但也可以采用其他方式。骨架化的结果是一条1像素的粗线穿过对象的中心。
这些不是要实现的简单算法。我不会解释它是如何工作的。您需要开始使用具有图像处理功能的库。不要重新发明轮子。