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


Python skimage.filters.threshold_sauvola用法及代码示例


用法:

skimage.filters.threshold_sauvola(image, window_size=15, k=0.2, r=None)

将 Sauvola 本地阈值应用于数组。 Sauvola 是对 Niblack 技术的改进。

在原始方法中,使用以下公式为图像中的每个像素计算阈值 T:

T = m(x,y) * (1 + k * ((s(x,y) / R) - 1))

其中 m(x,y) 和 s(x,y) 是像素 (x,y) 邻域的均值和标准差,该邻域由以像素为中心的大小为 w 乘以 w 的矩形窗口定义。 k 是一个可配置的参数,它对标准偏差的影响进行加权。 R 是灰度图像的最大标准偏差。

参数

image(N, M[, ..., P]) ndarray

灰度输入图像。

window_sizeint 或 int 的可迭代对象,可选

窗口大小指定为单个奇整数 (3, 5, 7, ...),或长度为 image.ndim 的仅包含奇整数的迭代(例如 (1, 5, 5) )。

k浮点数,可选

正参数 k 的值。

r浮点数,可选

R值,标准差的动态范围。如果没有,设置为图像 dtype 范围的一半。

返回

threshold(N, M) ndarray

阈值掩码。强度高于此值的所有像素都被假定为前景。

注意

该算法最初是为文本识别而设计的。

参考

1

J. Sauvola and M. Pietikainen, “Adaptive document image binarization,” Pattern Recognition 33(2), pp. 225-236, 2000. DOI:10.1016/S0031-3203(99)00055-2

例子

>>> from skimage import data
>>> image = data.page()
>>> t_sauvola = threshold_sauvola(image, window_size=15, k=0.2)
>>> binary_image = image > t_sauvola

相关用法


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