Получите самую большую связную область - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть картинки вроде: enter image description here

Мои данные состоят из кусковых матриц, в то время как белый цвет представлен 1, а черный - 0. Я хочу извлечь тело на этих изображениях,Я могу предположить, что тело всегда является самой большой связной областью на изображении.

Существует ли существующий алгоритм или я должен создать свой собственный?

1 Ответ

0 голосов
/ 11 декабря 2018

Мы можем использовать skimage.measure label и regionprops для двух методов.Таким образом, с im в качестве входного изображения 2D у нас будут те, которые перечислены ниже.

Подход # 1 С label и numpy.bincount -

from skimage.measure import label, regionprops

l = label(im)
out = (l==np.bincount(l.ravel())[1:].argmax()+1).astype(int)

Подход № 2 С label и regionprops -

r = regionprops(l) # l is from previous approach
out = (l==(1+np.argmax([i.area for i in r]))).astype(int)

Выход с заданным образцом -

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...