Предполагая, что у вас есть список NumPy массивов с масками объектов, вы можете попробовать функцию regionprops
scikit-image, которая возвращает список соответствующих ограничительных рамок (а также других полезных свойств):
from skimage import measure
a = np.array([[0,0,0],[0,1,0],[0,1,0],[0,1,0],[0,0,0]])
b = measure.regionprops(a)
print(b[0].bbox)
Возвращает: (1, 1, 4, 2)
, что соответствует (min_row, min_col, max_row, max_col)
. Обратите внимание, что согласно https://scikit-image.org/docs/dev/api/skimage.measure.html#regionprops интервалы для координат ограничивающего прямоугольника полуоткрыты (включительно спереди, исключая сзади) следующим образом: [min_row; max_row)
и [min_col; max_col)
.