用法:
cucim.skimage.segmentation.find_boundaries(label_img, connectivity=1, mode='thick', background=0)
返回标记区域之间的边界为 True 的布尔数组。
- label_img:int 或 bool 数组
一个数组,其中不同的区域用不同的整数或布尔值标记。
- connectivity:int in {1, ...,
label_img.ndim
},可选 如果一个像素的任何相邻像素具有不同的标签,则该像素被视为边界像素。
connectivity
控制哪些像素被视为邻居。连接性为 1(默认)意味着共享边(2D)或面(3D)的像素将被视为邻居。label_img.ndim
的连通性意味着共享一个角的像素将被视为邻居。- mode:{‘thick’, ‘inner’, ‘outer’, ‘subpixel’} 中的字符串
如何标记边界:
- 厚:任何未被相同标签(由
connectivity
定义)的像素完全包围的像素都被标记为边界。这会产生 2 个像素厚的边界。 - 内部:勾勒对象的像素
just inside
,保持背景像素不变。 - 外部:对象边界周围背景中的轮廓像素。当两个物体接触时,它们的边界也会被标记。
- subpixel:返回一个加倍的图像,像素
between
在适当的地方标记为边界的原始像素。
- 厚:任何未被相同标签(由
- background:整数,可选
对于模式‘inner’ and ‘outer’,需要定义背景标签。有关这两者的说明,请参见
mode
。
- boundaries:布尔数组,与
label_img
的形状相同 True
表示边界像素的布尔图像。对于等于‘subpixel’的mode
,对于所有i
,boundaries.shape[i]
等于2 * label_img.shape[i] - 1
(在所有其他像素对之间插入一个像素)。
- boundaries:布尔数组,与
参数:
返回:
例子:
>>> labels = cp.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... [0, 0, 0, 0, 0, 5, 5, 5, 0, 0], ... [0, 0, 1, 1, 1, 5, 5, 5, 0, 0], ... [0, 0, 1, 1, 1, 5, 5, 5, 0, 0], ... [0, 0, 1, 1, 1, 5, 5, 5, 0, 0], ... [0, 0, 0, 0, 0, 5, 5, 5, 0, 0], ... [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ... [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=cp.uint8) >>> find_boundaries(labels, mode='thick').astype(cp.uint8) array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0, 1, 1, 0], [0, 1, 1, 0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8) >>> find_boundaries(labels, mode='inner').astype(cp.uint8) array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 1, 0, 0], [0, 0, 1, 0, 1, 1, 0, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8) >>> find_boundaries(labels, mode='outer').astype(cp.uint8) array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0, 1, 0], [0, 1, 0, 0, 1, 1, 0, 0, 1, 0], [0, 1, 0, 0, 1, 1, 0, 0, 1, 0], [0, 1, 0, 0, 1, 1, 0, 0, 1, 0], [0, 0, 1, 1, 1, 1, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8) >>> labels_small = labels[::2, ::3] >>> labels_small array([[0, 0, 0, 0], [0, 0, 5, 0], [0, 1, 5, 0], [0, 0, 5, 0], [0, 0, 0, 0]], dtype=uint8) >>> find_boundaries(labels_small, mode='subpixel').astype(cp.uint8) array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 1, 0], [0, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 1, 0], [0, 0, 0, 1, 0, 1, 0], [0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0]], dtype=uint8) >>> bool_image = cp.array([[False, False, False, False, False], ... [False, False, False, False, False], ... [False, False, True, True, True], ... [False, False, True, True, True], ... [False, False, True, True, True]], ... dtype=bool) >>> find_boundaries(bool_image) array([[False, False, False, False, False], [False, False, True, True, True], [False, True, True, True, True], [False, True, True, False, False], [False, True, True, False, False]])
相关用法
- Python cucim.skimage.segmentation.random_walker用法及代码示例
- Python cucim.skimage.segmentation.relabel_sequential用法及代码示例
- Python cucim.skimage.segmentation.join_segmentations用法及代码示例
- Python cucim.skimage.feature.shape_index用法及代码示例
- Python cucim.skimage.restoration.richardson_lucy用法及代码示例
- Python cucim.skimage.util.invert用法及代码示例
- Python cucim.skimage.data.binary_blobs用法及代码示例
- Python cucim.skimage.filters.roberts_neg_diag用法及代码示例
- Python cucim.skimage.color.lch2lab用法及代码示例
- Python cucim.skimage.measure.label用法及代码示例
- Python cucim.skimage.color.rgb2gray用法及代码示例
- Python cucim.skimage.filters.gabor用法及代码示例
- Python cucim.skimage.transform.rescale用法及代码示例
- Python cucim.skimage.filters.roberts_pos_diag用法及代码示例
- Python cucim.skimage.filters.roberts用法及代码示例
- Python cucim.skimage.morphology.dilation用法及代码示例
- Python cucim.skimage.feature.corner_foerstner用法及代码示例
- Python cucim.skimage.measure.moments_coords用法及代码示例
- Python cucim.skimage.filters.gabor_kernel用法及代码示例
- Python cucim.skimage.color.hsv2rgb用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.segmentation.find_boundaries。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。