С myArray
с 255 для черного пикселя, например
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 255., 0., 0., 0., 0.],
[ 0., 0., 0., 255., 255., 255., 0., 0., 0.],
[ 0., 0., 255., 255., 255., 255., 255., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
, вы можете получить все строки с хотя бы одним черным пикселем с np.where
после использования sum
на axis=1
:
print (np.where(myArray.sum(axis=1)))
(array([3, 4, 5], dtype=int64),)
Если вы хотите получить строку с максимальным количеством черных пикселей, вы можете использовать np.argmax
все еще после sum
при axis=1
:
print (np.argmax(myArray.sum(axis=1)))
5
Чтобы узнатьесли треугольник вверх или вниз, один из способов - проверить, является ли argmax
элементом np.max
в np.where(myArray.sum(axis=1))
, тогда он будет вверх.
myArray_sum = myArray.sum(axis=1)
if np.max(np.where(myArray_sum)) == np.argmax(myArray_sum):
print ('up')
else:
print ('down')
Если вы хотите первыйи последний ряд, здесь один способ, но он связан со значением черного пикселя.
myArray_sum = myArray.sum(axis=1)
firstRow = np.argmax(myArray_sum == 255)
lastRow = np.argmax(myArray_sum)