【问题标题】:Finding a path from a thick line从粗线中寻找路径
【发布时间】:2021-06-19 21:35:21
【问题描述】:

我正在尝试寻找或思考一种从粗线中找到路径的算法。我认为这些图像更容易理解我想要做什么。

Given 是一个二维数组,如图所示,值为 0 和 1,我正在尝试查找线条的节点。有人有想法吗?

【问题讨论】:

  • 有尽可能少的段的折线之类的附加条件吗?
  • 行数可以变化,如果有帮助的话。

标签: python algorithm image-processing graph-algorithm


【解决方案1】:

您可以按照轮廓逐个像素地蚕食(检查连接是否完好无损)。

如果您无法移除更多像素,您可以根据需要设置一条 1 像素的线。

但是这条线很可能只有很少的长线性段(与您的示例不同)

【讨论】:

  • 仍然存在如何决定“蚕食”哪个像素以使结果有意义的问题
  • 沿着边界走,在跟随轮廓的同时一次移除。几轮后你就完成了。您的问题中没有定义“这样结果才有意义”,所以我无法回答那部分。
【解决方案2】:

我推荐使用最著名的 python 库进行图像处理:Pillow。 https://python-pillow.org/

一些问题来指导你:

  • 真的是黑白源图像吗?如果否,第一步将把这张图片的每个像素变成黑色或白色(枕头提出了这个功能)
  • 白色图案的宽度是否恒定(即始终为 15 像素)?如果否,您的程序将首先需要先扫描整个图片,然后再猜测模式。如果是,您可以在扫描图片时猜出图案。

但是“扫描图片”是什么意思? 这是关键问题。 您可以检查所有像素行(从第一行到最后一行,并且对于每一行,从左到右),每次遇到白色像素时,您都会记录其坐标并首先记录除此之外的白色像素数白色像素。 这样做,您将获得一个所有白色像素所在的表格。 然后,它更多的是关于数学而不是编程。

【讨论】:

  • 找到白色像素不是问题。我的问题是当你已经有了像素时找到折线。
猜你喜欢
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多