Получить координаты ненулевой двоичной маски в определенном диапазоне - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь получить ненулевые значения двоичной маски (которая была проиндексирована определенным диапазоном, диапазон здесь определяется нижним и верхним значениями x, y)

СначалаЯ сделал это

region = np.transpose(np.nonzero(mask_belt[lower_Y[i]:upper_Y[i],lower_X[i]:upper_X[i]]))

, но потом понял, что координата области дает мне координату маски, обрезанной по диапазону, поэтому я должен был сделать это после.

region[:,1] = region[:,1]+lower_X[i]
region[:,0] = region[:,0] + lower_Y[i]

Но я чувствую, что это подвержено ошибкам. Есть ли более чистый способ получить ненулевые значения двоичной маски (не для всей маски, а в определенном диапазоне значений X и Y)

1 Ответ

1 голос
/ 10 октября 2019

Мы можем сделать это суммирование за один шаг, а также ввести np.argwhere, чтобы получить эти индексы на первом шаге. Следовательно, один путь будет -

region = np.argwhere(mask_belt[lower_Y[i]:upper_Y[i],lower_X[i]:upper_X[i]]) 
region += [lower_Y[i],lower_X[i]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...