我坚持我的评估。我得到了一个位图,其尺寸(行和列)如下所示:
4 5
0 0 1 1 1
0 0 1 0 1
1 0 1 1 1
1 1 1 1 1
任务是找到水平和垂直最长的线和一个正方形(全部由1组成)。我只需要水平线的第一脚。
我已将位图放入一维数组中,但我不知道下一步。
上图的输出是最长水平线的坐标:
3 0 3 4
非常感谢您的帮助。
我坚持我的评估。我得到了一个位图,其尺寸(行和列)如下所示:
4 5
0 0 1 1 1
0 0 1 0 1
1 0 1 1 1
1 1 1 1 1
任务是找到水平和垂直最长的线和一个正方形(全部由1组成)。我只需要水平线的第一脚。
我已将位图放入一维数组中,但我不知道下一步。
上图的输出是最长水平线的坐标:
3 0 3 4
非常感谢您的帮助。
您必须将标头提取到结构中,并将数据提取到 a[] 之类的数组中。
令 R 和 C 为图像的行数和列数。对于给定的数组 a[],图像的每一行都从 a[C*i] 开始,其中 i 是行号。所以你可以用 i 索引行,并用 C*i+j 访问该行中的每个位,j 小于 C。接下来你需要processing
为每一行找到最长水平线的长度。对此的微小更改可用于索引列 j 并找到最长的垂直线。
要进行我上面说的处理,创建一个点结构为
struct point
{
int x;
int y;
}p1, p2;
还要创建一个名为的变量,该变量lenh
将包含找到的水平线的长度。llenh
也是存储最长长度的用户变量。对于由 (5i+j) 索引的 (i, j) 行中的每个顶点。设置llenh
为 0。从行开始,看到 1 更新lenh
,看看它是否大于llenh
。如果是更新p1
点。在看到 0 更新p2
点并设置lenh
为 0 并更新llenh
。
我还没有完全修改这个。如果有任何错误请评论..