从粗线中寻找路径

问题描述

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

Thick line without path

Thick line with past

给定的是一个二维数组,作为图片的值为 0 和 1,我试图找到线条的节点。有人有想法吗?

解决方法

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

如果您无法移除更多像素,则可以根据需要使用 1 个像素的线。

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

,

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

一些引导你的问题:

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

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