非常教程

Scikit image参考手册

过滤器 | filters

filters.rank

skimage.filters.rank.autolevel(image,selem)

使用局部直方图自动调整图像。

skimage.filters.rank.autolevel_percentile(...)

返回图像的灰度局部自动水平。

skimage.filters.rank.bottomhat(图像,selem)

图像的本地底部帽子。

skimage.filters.rank.enhance_contrast(image,...)

增强图像的对比度。

skimage.filters.rank.enhance_contrast_percentile(...)

增强图像的对比度。

skimage.filters.rank.entropy(图片,selem,...)

局部熵。

skimage.filters.rank.equalize(image,selem)

使用局部直方图均衡图像。

skimage.filters.rank.geometric_mean(image,selem)

返回图像的局部几何平均值。

skimage.filters.rank.gradient(图像,selem)

返回图像的局部渐变(即,

skimage.filters.rank.gradient_percentile(...)

返回图像的局部渐变(即,

skimage.filters.rank.maximum(image,selem,...)

返回图像的局部最大值。

skimage.filters.rank.mean(image,selem,...)

返回图像的局部平均值。

skimage.filters.rank.mean_bilateral(image,selem)

应用扁平内核双边过滤器。

skimage.filters.rank.mean_percentile(image,...)

返回图像的局部平均值。

skimage.filters.rank.median(image,selem,...)

返回图像的当地中位数。

skimage.filters.rank.minimum(image,selem,...)

返回图像的局部最小值。

skimage.filters.rank.modal(image,selem,...)

返回图像的本地模式。

skimage.filters.rank.noise_filter(image,selem)

噪音功能。

skimage.filters.rank.otsu(image,selem,...)

本地Otsu的每个像素的阈值。

skimage.filters.rank.percentile(image,selem)

返回图像的本地百分位数。

skimage.filters.rank.pop(image,selem,...)

返回像素的本地数量(人口)。

skimage.filters.rank.pop_bilateral(image,selem)

返回像素的本地数量(人口)。

skimage.filters.rank.pop_percentile(image,selem)

返回像素的本地数量(人口)。

skimage.filters.rank.subtract_mean(image,selem)

返回图像从其局部平均值中减去。

skimage.filters.rank.subtract_mean_percentile(...)

返回图像从其局部平均值中减去。

skimage.filters.rank.sum(image,selem,...)

返回像素的局部总和。

skimage.filters.rank.sum_bilateral(image,selem)

应用扁平内核双边过滤器。

skimage.filters.rank.sum_percentile(image,selem)

返回像素的局部总和。

skimage.filters.rank.threshold(图片,selem)

图像的局部阈值。

skimage.filters.rank.threshold_percentile(...)

图像的局部阈值。

skimage.filters.rank.tophat(image,selem,...)

图像的本地礼帽。

skimage.filters.rank.windowed_histogram(...)

归一化滑动窗口直方图

skimage.filters.rank.bilateral

用于本地(定制内核)平均值的近似双边排名过滤器。

skimage.filters.rank.bilateral_cy

skimage.filters.rank.core_cy

skimage.filters.rank.generic

一般描述

skimage.filters.rank.generic_cy

skimage.filters.rank.percentile_cy

autolevel

skimage.filters.rank.autolevel(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

使用局部直方图自动调整图像。

此过滤器局部拉伸灰度值的直方图以涵盖从“白色”到“黑色”的整个值范围。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import autolevel
>>> img = data.camera()
>>> auto = autolevel(img, disk(5))

autolevel_percentile

skimage.filters.rank.autolevel_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

返回图像的灰度局部自动水平。

此过滤器局部拉伸灰度值的直方图以涵盖从“白色”到“黑色”的整个值范围。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

bottomhat

skimage.filters.rank.bottomhat(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

图像的本地底部帽子。

该过滤器计算图像的形态闭合,然后从原始图像中减去结果。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。掩码:二维数组掩膜阵列,用于定义(> 0)包含在本地邻域中的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import bottomhat
>>> img = data.camera()
>>> out = bottomhat(img, disk(5))

enhance_contrast

skimage.filters.rank.enhance_contrast(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

增强图像的对比度。

如果像素灰度值比局部最小值更接近局部最大值,则将这些像素替换为局部最大值。否则它会被当地最低限度替代。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。返回输出图像。out:二维数组(与输入图像相同的dtype)本地enhance_contrast的结果。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import enhance_contrast
>>> img = data.camera()
>>> out = enhance_contrast(img, disk(5))

enhance_contrast_percentile

skimage.filters.rank.enhance_contrast_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

增强图像的对比度。

如果像素灰度值比局部最小值更接近局部最大值,则将这些像素替换为局部最大值。否则它会被当地最低限度替代。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

entropy

skimage.filters.rank.entropy(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

局部熵。

使用基2对数计算熵,即过滤器返回编码局部greylevel分布所需的最小位数。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:ndarray(double)输出图像。

参考

R281

http://en.wikipedia.org/wiki/Entropy_(information_theory)

例子

>>> from skimage import data
>>> from skimage.filters.rank import entropy
>>> from skimage.morphology import disk
>>> img = data.camera()
>>> ent = entropy(img, disk(5))

equalize

skimage.filters.rank.equalize(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

使用局部直方图均衡图像。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import equalize
>>> img = data.camera()
>>> equ = equalize(img, disk(5))

geometric_mean

skimage.filters.rank.geometric_mean(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的局部几何平均值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

参考

R282

Gonzalez, R. C. and Wood, R. E. “Digital Image Processing (3rd Edition).” Prentice-Hall Inc, 2006.

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import mean
>>> img = data.camera()
>>> avg = geometric_mean(img, disk(5))

gradient

skimage.filters.rank.gradient(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的局部梯度(即局部最大值 - 局部最小值)。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import gradient
>>> img = data.camera()
>>> out = gradient(img, disk(5))

gradient_percentile

skimage.filters.rank.gradient_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

返回图像的局部梯度(即局部最大值 - 局部最小值)。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

maximum

skimage.filters.rank.maximum(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的局部最大值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

另请参阅

skimage.morphology.dilation

注意

较低的算法复杂度使得skimage.filters.rank.maximum更大的图像和结构元素更高效。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import maximum
>>> img = data.camera()
>>> out = maximum(img, disk(5))

mean

skimage.filters.rank.mean(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的局部平均值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import mean
>>> img = data.camera()
>>> avg = mean(img, disk(5))

mean_bilateral

skimage.filters.rank.mean_bilateral(image, selem, out=None, mask=None, shift_x=False, shift_y=False, s0=10, s1=10)[source]

应用扁平内核双边过滤器。

这是一个边缘保留和降噪降噪滤波器。它基于它们的空间接近度和辐射度相似性对像素进行平均。

通过仅考虑由结构元素给出的局部像素邻域来测量空间紧密度。

辐射测量相似度由灰度级间隔g-s0,g + s1定义,其中g是当前像素的灰度级。

只有属于该结构元素且在该区间内具有灰度级的像素才被平均。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。s0,s1:int定义围绕要计算值的中心像素灰度值的s0,s1间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

另请参阅

skimage.filters.denoise_bilateral

示例

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import mean_bilateral
>>> img = data.camera().astype(np.uint16)
>>> bilat_img = mean_bilateral(img, disk(20), s0=10,s1=10)

mean_percentile

skimage.filters.rank.mean_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

返回图像的局部平均值。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

median

skimage.filters.rank.median(image, selem=None, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的当地中位数。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组,可选将邻域表示为1和0的二维数组。如果没有,则使用大小为3的完整正方形。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

示例

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import median
>>> img = data.camera()
>>> med = median(img, disk(5))

minimum

skimage.filters.rank.minimum(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的局部最小值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

另请参阅

skimage.morphology.erosion

注意

较低的算法复杂度使得skimage.filters.rank.minimum更大的图像和结构元素更高效。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import minimum
>>> img = data.camera()
>>> out = minimum(img, disk(5))

modal

skimage.filters.rank.modal(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像的本地模式。

模式是在本地直方图中最经常出现的值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import modal
>>> img = data.camera()
>>> out = modal(img, disk(5))

noise_filter

skimage.filters.rank.noise_filter(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

噪音功能。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

参考

R283

N. Hashimoto et al. Referenceless image quality evaluation for whole slide imaging. J Pathol Inform 2012;3:9.

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import noise_filter
>>> img = data.camera()
>>> out = noise_filter(img, disk(5))

otsu

skimage.filters.rank.otsu(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

本地Otsu的每个像素的阈值。

参数:

图像:ndarray图像数组(uint8数组)。selem:二维数组该邻域表示为1和0的二维数组。out:ndarray如果没有,则会分配一个新的数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

参考

R284

http://en.wikipedia.org/wiki/Otsu’s_method

示例

>>> from skimage import data
>>> from skimage.filters.rank import otsu
>>> from skimage.morphology import disk
>>> img = data.camera()
>>> local_otsu = otsu(img, disk(5))
>>> thresh_image = img >= local_otsu

percentile

skimage.filters.rank.percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0)[source]

返回图像的本地百分位数。

返回本地灰值分布的p0低百分点的值。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0:浮点数,0,...,1设置百分数值。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

pop

skimage.filters.rank.pop(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回像素的本地数量(人口)。

像素的数量被定义为包含在结构元素和掩模中的像素的数量。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage.morphology import square
>>> import skimage.filters.rank as rank
>>> img = 255 * np.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]], dtype=np.uint8)
>>> rank.pop(img, square(3))
array([[4, 6, 6, 6, 4],
       [6, 9, 9, 9, 6],
       [6, 9, 9, 9, 6],
       [6, 9, 9, 9, 6],
       [4, 6, 6, 6, 4]], dtype=uint8)

pop_bilateral

skimage.filters.rank.pop_bilateral(image, selem, out=None, mask=None, shift_x=False, shift_y=False, s0=10, s1=10)[source]

返回像素的本地数量(人口)。

像素的数量被定义为包含在结构元素和掩模中的像素的数量。此外,像素必须在区间g-s0,g + s1内具有greylevel,其中g是中心像素的灰度值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。s0,s1:int定义围绕要计算值的中心像素灰度值的s0,s1间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

示例

>>> from skimage.morphology import square
>>> import skimage.filters.rank as rank
>>> img = 255 * np.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]], dtype=np.uint16)
>>> rank.pop_bilateral(img, square(3), s0=10, s1=10)
array([[3, 4, 3, 4, 3],
       [4, 4, 6, 4, 4],
       [3, 6, 9, 6, 3],
       [4, 4, 6, 4, 4],
       [3, 4, 3, 4, 3]], dtype=uint16)

pop_percentile

skimage.filters.rank.pop_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

返回像素的本地数量(人口)。

像素的数量被定义为包含在结构元素和掩模中的像素的数量。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

subtract_mean

skimage.filters.rank.subtract_mean(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回图像从其局部平均值中减去。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import subtract_mean
>>> img = data.camera()
>>> out = subtract_mean(img, disk(5))

subtract_mean_percentile

skimage.filters.rank.subtract_mean_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

返回图像从其局部平均值中减去。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

sum

skimage.filters.rank.sum(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

返回像素的局部总和。

请注意,总和可能会溢出,具体取决于输入数组的数据类型。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

示例

>>> from skimage.morphology import square
>>> import skimage.filters.rank as rank
>>> img = np.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]], dtype=np.uint8)
>>> rank.sum(img, square(3))
array([[1, 2, 3, 2, 1],
       [2, 4, 6, 4, 2],
       [3, 6, 9, 6, 3],
       [2, 4, 6, 4, 2],
       [1, 2, 3, 2, 1]], dtype=uint8)

sum_bilateral

skimage.filters.rank.sum_bilateral(image, selem, out=None, mask=None, shift_x=False, shift_y=False, s0=10, s1=10)[source]

应用扁平内核双边过滤器。

这是一个边缘保留和降噪降噪滤波器。它基于它们的空间接近度和辐射度相似性对像素进行平均。

通过仅考虑由结构元素(selem)给出的局部像素邻域来测量空间紧密度。

辐射测量相似度由灰度级间隔g-s0,g + s1定义,其中g是当前像素的灰度级。

只有属于结构元素AND且在此区间内具有灰度级的像素才会相加。

请注意,总和可能会溢出,具体取决于输入数组的数据类型。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。s0,s1:int定义围绕要计算值的中心像素灰度值的s0,s1间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

另请参阅

skimage.filters.denoise_bilateral

示例

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import sum_bilateral
>>> img = data.camera().astype(np.uint16)
>>> bilat_img = sum_bilateral(img, disk(10), s0=10, s1=10)

sum_percentile

skimage.filters.rank.sum_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0, p1=1)[source]

返回像素的局部总和。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

请注意,总和可能会溢出,具体取决于输入数组的数据类型。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0,p1:浮点数,0,...,1定义计算值时要考虑的p0,p1百分位数间隔。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

threshold

skimage.filters.rank.threshold(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

图像的局部阈值。

如果中心像素的灰度值大于局部平均值,则生成的二进制掩码为True。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

示例

>>> from skimage.morphology import square
>>> from skimage.filters.rank import threshold
>>> img = 255 * np.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]], dtype=np.uint8)
>>> threshold(img, square(3))
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]], dtype=uint8)

threshold_percentile

skimage.filters.rank.threshold_percentile(image, selem, out=None, mask=None, shift_x=False, shift_y=False, p0=0)[source]

图像的局部阈值。

如果中心像素的灰度值大于局部平均值,则生成的二进制掩码为True。

在过滤器中只考虑百分位数p0,p1之间的灰色值。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。p0:浮点数,0,...,1设置百分数值。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

tophat

skimage.filters.rank.tophat(image, selem, out=None, mask=None, shift_x=False, shift_y=False)[source]

本地高帽的一张图像。

该过滤器计算图像的形态打开,然后从原始图像中减去结果。

参数:

图像:二维数组(uint8,uint16)输入图像。selem:二维数组该邻域表示为1和0的二维数组。out:二维数组(与输入相同的dtype)如果没有,则分配一个新数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。

返回:

out:二维数组(与输入图像相同的dtype)输出图像。

例子

>>> from skimage import data
>>> from skimage.morphology import disk
>>> from skimage.filters.rank import tophat
>>> img = data.camera()
>>> out = tophat(img, disk(5))

windowed_histogram

skimage.filters.rank.windowed_histogram(image, selem, out=None, mask=None, shift_x=False, shift_y=False, n_bins=None)[source]

归一化滑动窗口直方图

参数:

图像:ndarray图像数组(uint8数组)。selem:二维数组该邻域表示为1和0的二维数组。out:ndarray如果没有,则会分配一个新的数组。mask:ndarray Mask数组,用于定义(> 0)本地邻域中包含的图像的区域。如果没有,则使用完整的图像(默认)。shift_x,shift_y:int添加到结构元素中心点的偏移量。Shift是有界的结构元素的大小(中心必须在给定的结构元素内)。n_bins:int或None直方图箱的数量。如果没有传递,将默认为image.max()+ 1。

返回:

out : 3-D array with float dtype of dimensions (H,W,N), where (H,W) are the dimensions of the input image and N is n_bins or image.max() + 1 if no value is provided as a parameter. Effectively, each pixel is a N-D feature vector that is the histogram. The sum of the elements in the feature vector will be 1, unless no pixels in the window were covered by both selem and mask, in which case all elements will be 0.

例子

>>> from skimage import data
>>> from skimage.filters.rank import windowed_histogram
>>> from skimage.morphology import disk
>>> img = data.camera()
>>> hist_img = windowed_histogram(img, disk(5))

过滤器 | filters相关

Scikit image

Scikit-image 是用于图像处理的 Python 包,使用原生的 NumPy 数组作为图像对象。

主页 http://scikit-image.org/
源码 https://github.com/scikit-image/scikit-image
发布版本 0.13.1