当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python skimage.morphology.thin用法及代码示例


用法:

skimage.morphology.thin(image, max_num_iter=None)

执行二值图像的形态细化。

参数

image二进制(M,N)ndarray

要细化的图像。

max_num_iterint 迭代次数,可选

无论此参数的值如何,如果迭代没有产生变化,则立即返回细化的图像。如果指定了此参数,则它会设置执行迭代次数的上限。

返回

out布尔数组

变薄的图像。

其他参数

max_iterDEPRECATED

已弃用以支持max_num_iter。

注意

该算法 [1] 的工作原理是在图像上进行多次传递,删除与一组旨在细化连接区域的标准相匹配的像素,同时保留 eight-connected 组件和 2 x 2 正方形 [2] 。在两个sub-iterations 中的每一个中,该算法将中间骨架图像与邻域掩码相关联,然后在查找表中查找每个邻域,指示是否应删除该sub-iteration 中的中心像素。

参考

1

Z. Guo and R. W. Hall, “Parallel thinning with two-subiteration algorithms,” Comm. ACM, vol. 32, no. 3, pp. 359-373, 1989. DOI:10.1145/62065.62074

2

Lam, L., Seong-Whan Lee, and Ching Y. Suen, “Thinning Methodologies-A Comprehensive Survey,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9, p. 879, 1992. DOI:10.1109/34.161346

例子

>>> square = np.zeros((7, 7), dtype=np.uint8)
>>> square[1:-1, 2:-2] = 1
>>> square[0, 1] =  1
>>> square
array([[0, 1, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]], dtype=uint8)
>>> skel = thin(square)
>>> skel.astype(np.uint8)
array([[0, 1, 0, 0, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 0],
       [0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]], dtype=uint8)

相关用法


注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.morphology.thin。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。