Как получить верхний левый и нижний правый координаты окна вокруг определенного значения в матрице с использованием Python? - PullRequest
1 голос
/ 08 сентября 2011

У меня есть двумерный массив. Давайте рассмотрим следующий пример

    [[0,6,89,255,1,6,7]
    [0,255,89,255,1,1,7]
    [255,255,255,255,255,255,255]
    [1,2,3,4,5,6,7]
    [1,1,255,5,7,3,255]]

Нам нужны координаты прямоугольника вокруг определенного значения. Например, для значения 255 координаты поля вокруг значения 255 будут иметь верхний левый угол (0,0) и нижний правый (4,6).

Как сделать это эффективно в Python.

Большое спасибо.

1 Ответ

4 голосов
/ 08 сентября 2011

Ответ очень похож на: Есть ли функция "ограничивающего прямоугольника" (срез с ненулевыми значениями) для ndarray в NumPy?

from numpy import array, argwhere

A = array([[0  ,6  ,89 ,255,1  ,6  ,7  ],
           [0  ,255,89 ,255,1  ,1  ,7  ],
           [255,255,255,255,255,255,255],
           [1  ,2  ,3  ,4  ,5  ,6  ,7  ],
           [1  ,1  ,255,5  ,7  ,3  ,255]])

B = argwhere(A==255)
(ystart, xstart), (ystop, xstop) = B.min(0), B.max(0) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...