什么相当于 Python 3.x 中的"bwlabeln (with 18 and 26-connected neighborhood)"?



我已经将 Matlab 的bwlabeln用于三维连接词,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) 

但是,Matlab 中的bwlabeln支持Three-dimensional connectives(具有 18 和 26 连接的邻域),但skimage.measure.label只支持4- or 8-“connectivity”

什么相当于 Python 中18 and 26-connected neighborhoodbwlabeln

参数neighborsskimage.measure.label状态的文档:

邻居 : {4, 8}, 整数, 可选
是使用 4 还是 8 "连接"。在3D中,4-"连接"意味着连接的像素必须共享面,而对于8-"连接",它们必须仅共享边缘或顶点。
已弃用,请改用connectivity

对于参数connectivity

连接性 : 整数,可选
将像素/体素视为邻居的最大正交跃点数。可接受的值范围为 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) 

相关内容

  • 没有找到相关文章

最新更新