Что эквивалентно «bwlabeln (с 18 и 26-связной окрестностью)» в Python 3.x?

1

Я использовал bwlabeln для Matlab для трехмерных 18-connected neighborhood с 18-connected neighborhood как 18-connected neighborhood ниже:

[labeledImage, ~] = bwlabeln(maskImageVolume, 18); # maskImageVolume is 3D. e.g.:(200, 200, 126)

и эквивалент его в Python:

from skimage import measure
labeledImage = measure.label(maskImageVolume, 8) 

Тем не менее, bwlabeln в Matlab поддерживает Three-dimensional connectives (с 18 и 26-подключенными соседями), но skimage.measure.label просто поддерживает связь 4- or 8-"connectivity".

Что эквивалентно bwlabeln для 18 and 26-connected neighborhood в Python?

Теги:
scikit-image

1 ответ

1
Лучший ответ

Документация для skimage.measure.label указывает на параметры neighbors:

соседи: {4, 8}, int, необязательно
Использовать ли 4- или 8- "подключение". В 3D 4- "подключение" означает, что подключенные пиксели должны делиться лицом, тогда как с 8- "связностью" им приходится делиться только концом или вершиной.
Устаревшие, используйте connectivity вместо этого.

А для connectivity параметров:

connectivity: int, необязательный
Максимальное количество ортогональных переходов для рассмотрения пикселя/вокселя как соседа. Принимаемые значения варьируются от 1 до input.ndim. Если None, используется полная возможность подключения input.ndim.

Это означает, что в 3D соединение может быть либо 1, 2, либо 3, указывая 6, 18 или 26 соседей.

Оглядываясь на различные версии документации, этот синтаксис, кажется, был введен в scikit-image 0.11 (0.10 его не имеет).

Для вашего случая с 18 связанными соседями:

labeledImage = measure.label(maskImageVolume, connectivity=2) 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню