Как замаскировать или обрезать область изображения после применения подключенных компонентов - PullRequest
0 голосов
/ 26 января 2019

У меня есть изображение RGB (NxMx3 ndarray), имеющее различные области. После применения кластеризации и подключенных компонентов ( skimage measure.label ) я получил NxM ndarray с помеченными областями.

Как я могу использовать эти помеченные области для обрезки или маскирования пикселей исходного изображения (NxMx3)? В конце я хочу взять только фон (с меткой = 0) и извлечь из него немного среднего цвета.

1 Ответ

0 голосов
/ 29 января 2019

Предполагая, image является вашим исходным изображением labels является вашим изображением метки, вы можете получить пиксели, соответствующие метке j с помощью:

pixels_j = image[labels == j]

Это даст вам массив (Nj, 3)из этих пикселей.Затем вы можете восстановить средний цвет с помощью:

mean_color = np.mean(pixels_j, axis=0)

Если вы собираетесь сделать это для многих изображений, вам, вероятно, следует использовать skimage.measure.regionprops.

...