【发布时间】:2020-01-11 17:38:08
【问题描述】:
如果所有这些看起来令人困惑,请先道歉。我尽量说清楚。
我班上的一个挑战问题是编写一个在黑白图像上查找线段的程序。这些线条总是一个像素宽,白色背景上的黑色,没有灰度或其他颜色。每个图像最多包含 2 行。我的程序的输出应该是每条线段的起点和终点的坐标(如果有的话)。坐标将始终是整个像素坐标。
图像将由文本文件表示。文件中的一行是图像的一行。行中的每个字符是一个像素。一个像素的值可以是 0 或 1。0 表示该像素不是线条的一部分(它是白色的)。 1 表示,这个像素是一条线的一部分(它是黑色的)。 像往常一样,在表示图像时,左上角的像素具有 (0, 0) 坐标。 X 轴向右增加,Y 轴向下增加。
在常规输入集中,线条不会相互接触或相交。
程序的输出应该为每张图像保留一行。该行应以图像的文件名开头,然后是端点的坐标。每个坐标都应该用括号括起来。每个坐标的第一个值应该是 X 位置,第二个是 Y 位置。这些值应该用逗号分隔。坐标应以空格分隔。同一行的两个端点在输出中应该相互跟随。
所以我也得到了一组由 1 和 0 组成的“图片”。基本上它看起来像下面这样:
我完全不知道如何从这类问题开始。甚至还有一个额外的部分,他们要求你让程序能够找到相互接触的线条
提前非常感谢!
这是我得到的“图片”之一的样本。它实际上是一个 txt 文件,因为里面的所有内容都只是 0 和 1
0000000000000000000000000000100000000000000 0000000000000000000000000000100000000000000 0000000000000000000000000000100000000000000 0000000000000000000000000000100000000000000 0000000000000000000000000001000000000000000 0000000000000000000000000001000000000000000 0000000000000000000000000001000000000000000 0000000000000000000000000001000000000000000 0000000000000000000000000001000000000000000 0000000000000000000000000010000000000000000 0000000000000000000000000010000000000000000 0000000000000000000000000010000000000000000 0000000000000000000000000010000000000000000 0000000000000000000000000010000000000000000 0000000000000000000000000010000000000000000 000000000000000000000000100000000000000000 000000000000000000000000100000000000000000 000000000000000000000000100000000000000000 000000000000000000000000100000000000000000 000000000000000000000000100000000000000000 0000000000000000000000001000000000000000000 0000000000000000000000001000000000000000000 000000000000000000000001000000000000000000
【问题讨论】:
-
它的一个名字是"Connected Component Labeling"...en.m.wikipedia.org/wiki/Connected-component_labeling
标签: algorithm