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

Я использовал bwlabeln Matlab для трехмерных соединительных элементов с 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?

1 Ответ

0 голосов
/ 31 октября 2018

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

соседей: {4, 8}, int, необязательно
Использовать ли 4- или 8-связность. В 3D «4-связность» означает, что подключенные пиксели должны иметь общую грань, тогда как в «8-связность» они должны использовать только ребро или вершину.
устарело, используйте 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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...