【问题标题】:Reduce the thickness of a line减少线条的粗细
【发布时间】:2018-07-30 12:45:52
【问题描述】:

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



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

【问题讨论】:

  • 应该没那么难。对于每个绿色像素,查看相邻像素。如果它们是绿色的并且它们在同一方向上的下一个邻居是黑色的,那么也将其设置为黑色。

标签: java computer-vision ocr curve


【解决方案1】:

您正在寻找的算法系列称为骨架化或同伦细化。

同伦细化是一种条件侵蚀,如果删除像素会破坏地形,则不会删除该像素。

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

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

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 2021-11-24
    • 2011-01-17
    • 1970-01-01
    • 2023-01-20
    • 2022-12-16
    • 2012-07-23
    • 1970-01-01
    相关资源
    最近更新 更多