用C语言遍历左右边线数组ImageSide[MT9V03X_H][2]; 上下边线数组UpdowmSide[2][MT9V03X_W];寻找拐点坐标
时间: 2023-11-01 22:06:40 浏览: 23
假设 ImageSide 和 UpdowmSide 数组已经定义并初始化好了,以下是遍历左右边线数组 ImageSide 的代码:
```c
int i, j;
for (i = 0; i < MT9V03X_H; i++) {
// 如果当前行没有边线,则跳过
if (ImageSide[i][0] == -1 && ImageSide[i][1] == -1) {
continue;
}
// 找到左侧边线的拐点
for (j = 0; j < ImageSide[i][0]; j++) {
if (UpdowmSide[0][j] != -1 && UpdowmSide[0][j+1] == -1) {
printf("左侧边线的拐点坐标:(%d,%d)\n", i, j);
}
}
// 找到右侧边线的拐点
for (j = ImageSide[i][1]; j < MT9V03X_W; j++) {
if (UpdowmSide[1][j] != -1 && UpdowmSide[1][j-1] == -1) {
printf("右侧边线的拐点坐标:(%d,%d)\n", i, j);
}
}
}
```
上述代码中,我们使用两个嵌套的 for 循环遍历 ImageSide 数组中的每一行和每一列,然后通过对 UpdowmSide 数组进行判断,找到拐点的坐标。
接下来是遍历上下边线数组 UpdowmSide 的代码:
```c
int i, j;
for (j = 0; j < MT9V03X_W; j++) {
// 如果当前列没有边线,则跳过
if (UpdowmSide[0][j] == -1 && UpdowmSide[1][j] == -1) {
continue;
}
// 找到上侧边线的拐点
for (i = 0; i < UpdowmSide[0][j]; i++) {
if (ImageSide[i][0] != -1 && ImageSide[i+1][0] == -1) {
printf("上侧边线的拐点坐标:(%d,%d)\n", i, j);
}
}
// 找到下侧边线的拐点
for (i = UpdowmSide[1][j]; i < MT9V03X_H; i++) {
if (ImageSide[i][1] != -1 && ImageSide[i-1][1] == -1) {
printf("下侧边线的拐点坐标:(%d,%d)\n", i, j);
}
}
}
```
同样地,我们使用两个嵌套的 for 循环遍历 UpdowmSide 数组中的每一行和每一列,然后通过对 ImageSide 数组进行判断,找到拐点的坐标。
需要注意的是,这里假设边线是从左往右、从上往下逐渐增加的,因此拐点的坐标是按照行列递增的。如果边线是从右往左、从下往上逐渐减小的,那么拐点的坐标就应该按照行列递减。