如何在python中遍历2D数组中的每个元素



我有一个大小为768 x 1024的2d numpy数组,它包含分割图像的所有类值。我已经检测到这个阵列中的行人/车辆,并得到了边界框的左上角和右下角坐标,比如(381254(和(387257(。

(381254((381255(。。。。。。。。。。。。。。。(381257(

(382254(

(387254(。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(387257(

这些坐标下的每个单元格都有一个特定的类值(从1到22的数字(。我感兴趣的是"4"one_answers"10",这分别表示边界框包含行人或车辆。

如何单独迭代每个元素(第381行中从第254列到第257列的所有元素,然后到下一行,以此类推,直到右下角坐标(387257((,并检查该特定单元格是否包含数字4或10?

我尝试使用嵌套的for循环,但我无法理解其中的逻辑。

x_1 = 381
x_2 = 387
y_1 = 254
y_2 = 257
ROW = []
COL = []
four = 0
ten = 0
other = 0
for rows in range(x_1, x_2):
ROW.append(rows)
for cols in range(y_1, y_2):
COL.append(cols)
if array[rows][cols] == 4:
four += 1
elif array[rows][cols] == 10:
ten += 1
else:
print('random number')
other += 1

任何帮助都将不胜感激!谢谢

试着使用这个:

x_1 = 381
x_2 = 387
y_1 = 254
y_2 = 257
ROW = []
COL = []
four = 0
ten = 0
other = 0
for rows in range(x_1, x_2):
ROW.append(rows)
for cols in range(y_1, y_2):
COL.append(cols)
if 4 in (x_2, y_2):
four += 1
elif 10 in (x_2, y_2):
ten += 1
else:
print('random number')
other += 1

它将检查array[x][y]是否包含数字4或10。例如,如果是array[x][y] == (12, 4),则是four += 1

最新更新