scipy.ndimage.
binary_fill_holes#
- scipy.ndimage.binary_fill_holes(input, structure=None, output=None, origin=0)[源代码][源代码]#
填充二进制对象中的空洞。
- 参数:
- 输入array_like
带有孔洞的 N-D 二进制数组,需要填充
- 结构类似数组, 可选
计算中使用的结构化元素;大尺寸的元素使计算更快,但可能会错过与背景通过薄区域分隔的孔洞。默认元素(具有等于一的方形连通性)产生直观的结果,其中输入中的所有孔洞都已被填充。
- 输出ndarray,可选
与输入形状相同的数组,输出将被放置在其中。默认情况下,会创建一个新数组。
- 起源int, int 的元组, 可选
结构元素的位置。
- 返回:
- 出ndarray
初始图像 input 的变换,其中孔洞已被填充。
注释
此函数中使用的算法包括从图像的外边界开始,使用二值膨胀侵入 input 中形状的补集。孔洞不与边界相连,因此不会被侵入。结果是被侵入区域的补集。
参考文献
[1]示例
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((5, 5), dtype=int) >>> a[1:4, 1:4] = 1 >>> a[2,2] = 0 >>> a array([[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]]) >>> ndimage.binary_fill_holes(a).astype(int) array([[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]]) >>> # Too big structuring element >>> ndimage.binary_fill_holes(a, structure=np.ones((5,5))).astype(int) array([[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]])