skimage.filters.rank#

skimage.filters.rank.autolevel

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

skimage.filters.rank.autolevel_percentile

返回图像的灰度局部自动级别。

skimage.filters.rank.enhance_contrast

增强图像对比度。

skimage.filters.rank.enhance_contrast_percentile

增强图像对比度。

skimage.filters.rank.entropy

局部熵。

skimage.filters.rank.equalize

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

skimage.filters.rank.geometric_mean

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

skimage.filters.rank.gradient

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

skimage.filters.rank.gradient_percentile

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

skimage.filters.rank.majority

将每个像素分配给其邻域中最常见的价值。

skimage.filters.rank.maximum

返回图像的局部最大值。

skimage.filters.rank.mean

返回图像的局部平均值。

skimage.filters.rank.mean_bilateral

应用一个平坦核双边滤波器。

skimage.filters.rank.mean_percentile

返回图像的局部平均值。

skimage.filters.rank.median

返回图像的局部中值。

skimage.filters.rank.minimum

返回图像的局部最小值。

skimage.filters.rank.modal

返回图像的局部众数。

skimage.filters.rank.noise_filter

噪声特征。

skimage.filters.rank.otsu

每个像素的局部 Otsu 阈值。

skimage.filters.rank.percentile

返回图像的局部百分位数。

skimage.filters.rank.pop

返回像素的局部数量(人口)。

skimage.filters.rank.pop_bilateral

返回像素的局部数量(人口)。

skimage.filters.rank.pop_percentile

返回像素的局部数量(人口)。

skimage.filters.rank.subtract_mean

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

skimage.filters.rank.subtract_mean_percentile

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

skimage.filters.rank.sum

返回像素的局部总和。

skimage.filters.rank.sum_bilateral

应用一个平坦核双边滤波器。

skimage.filters.rank.sum_percentile

返回像素的局部总和。

skimage.filters.rank.threshold

图像的局部阈值。

skimage.filters.rank.threshold_percentile

图像的局部阈值。

skimage.filters.rank.windowed_histogram

归一化滑动窗口直方图


skimage.filters.rank.autolevel(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

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

此滤波器在本地拉伸灰度值的直方图,以覆盖从“白色”到“黑色”的整个值范围。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import autolevel
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> auto = autolevel(img, disk(5))
>>> auto_vol = autolevel(volume, ball(5))

排名过滤器

排名过滤器

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

返回图像的灰度局部自动级别。

此滤波器在本地拉伸灰度值的直方图,以覆盖从“白色”到“黑色”的整个值范围。

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

排名过滤器

排名过滤器

skimage.filters.rank.enhance_contrast(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

增强图像对比度。

这将每个像素替换为局部最大值,如果像素灰度值更接近局部最大值而不是局部最小值。否则它将被局部最小值替换。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import enhance_contrast
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = enhance_contrast(img, disk(5))
>>> out_vol = enhance_contrast(volume, ball(5))

排名过滤器

排名过滤器

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

增强图像对比度。

这将每个像素替换为局部最大值,如果像素灰度值更接近局部最大值而不是局部最小值。否则它将被局部最小值替换。

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

排名过滤器

排名过滤器

skimage.filters.rank.entropy(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

局部熵。

熵使用以 2 为底的对数计算,即滤波器返回编码局部灰度级分布所需的最小位数。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray (float)

输出图像。

参考文献

示例

>>> from skimage import data
>>> from skimage.filters.rank import entropy
>>> from skimage.morphology import disk, ball
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> ent = entropy(img, disk(5))
>>> ent_vol = entropy(volume, ball(5))

给灰度图像着色

给灰度图像着色

排名过滤器

排名过滤器

skimage.filters.rank.equalize(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

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

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import equalize
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> equ = equalize(img, disk(5))
>>> equ_vol = equalize(volume, ball(5))

局部直方图均衡化

局部直方图均衡化

排名过滤器

排名过滤器

skimage.filters.rank.geometric_mean(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

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

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

参考文献

[1]

Gonzalez, R. C. 和 Woods, R. E. “数字图像处理 (第 3 版)”。Prentice-Hall Inc, 2006。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import mean
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> avg = geometric_mean(img, disk(5))
>>> avg_vol = geometric_mean(volume, ball(5))

skimage.filters.rank.gradient(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

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

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import gradient
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = gradient(img, disk(5))
>>> out_vol = gradient(volume, ball(5))

分水岭变换的标记

分水岭变换的标记

排名过滤器

排名过滤器

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

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

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。


skimage.filters.rank.majority(image, footprint, *, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

将每个像素分配给其邻域中最常见的价值。

参数:
imagendarray

图像数组 (uint8, uint16 数组)。

footprint2-D 数组 (整数或浮点数)

以 2-D 数组表示的 1 和 0 的邻域。

outndarray (整数或浮点数), 可选

如果为 None,将分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint, 可选

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage import data
>>> from skimage.filters.rank import majority
>>> from skimage.morphology import disk, ball
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> maj_img = majority(img, disk(5))
>>> maj_img_vol = majority(volume, ball(5))

skimage.filters.rank.maximum(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回图像的局部最大值。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

备注

较低的算法复杂度使 skimage.filters.rank.maximum 对于较大的图像和足迹更有效。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import maximum
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = maximum(img, disk(5))
>>> out_vol = maximum(volume, ball(5))

排名过滤器

排名过滤器

skimage.filters.rank.mean(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回图像的局部平均值。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import mean
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> avg = mean(img, disk(5))
>>> avg_vol = mean(volume, ball(5))

平均滤波器

平均滤波器

分割人类细胞(有丝分裂)

分割人类细胞(有丝分裂)

排名过滤器

排名过滤器

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

应用一个平坦核双边滤波器。

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

空间接近度是通过仅考虑足迹(结构元素)给出的局部像素邻域来衡量的。

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

仅对属于足迹且灰度级位于该区间内的像素进行平均。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

s0, s1int

定义要考虑用于计算值的中心像素灰度值的 [s0, s1] 区间。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

示例

>>> import numpy as np
>>> 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)

平均滤波器

平均滤波器

排名过滤器

排名过滤器

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

返回图像的局部平均值。

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

平均滤波器

平均滤波器

skimage.filters.rank.median(image, footprint=None, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回图像的局部中值。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

用1和0的ndarray表示的邻域。如果为None,则使用大小为3的完整正方形。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

另请参阅

skimage.filters.median

实现一个处理浮点精度图像的中值滤波。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import median
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> med = median(img, disk(5))
>>> med_vol = median(volume, ball(5))

分水岭变换的标记

分水岭变换的标记

排名过滤器

排名过滤器

skimage.filters.rank.minimum(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回图像的局部最小值。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

备注

较低的算法复杂度使得skimage.filters.rank.minimum对于较大的图像和足迹来说效率更高。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import minimum
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = minimum(img, disk(5))
>>> out_vol = minimum(volume, ball(5))

排名过滤器

排名过滤器

skimage.filters.rank.modal(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回图像的局部众数。

众数是在局部直方图中出现次数最多的值。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import modal
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = modal(img, disk(5))
>>> out_vol = modal(volume, ball(5))

skimage.filters.rank.noise_filter(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

噪声特征。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

参考文献

[1]

N. Hashimoto 等人。全切片成像的无参考图像质量评价。J Pathol Inform 2012;3:9。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import noise_filter
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = noise_filter(img, disk(5))
>>> out_vol = noise_filter(volume, ball(5))

skimage.filters.rank.otsu(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

每个像素的局部大津阈值。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

参考文献

示例

>>> from skimage import data
>>> from skimage.filters.rank import otsu
>>> from skimage.morphology import disk, ball
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> local_otsu = otsu(img, disk(5))
>>> thresh_image = img >= local_otsu
>>> local_otsu_vol = otsu(volume, ball(5))
>>> thresh_image_vol = volume >= local_otsu_vol

阈值

阈值

排名过滤器

排名过滤器

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

返回图像的局部百分位数。

返回局部灰度值分布的p0下百分位的值。

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0float in [0, …, 1]

设置百分位值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。


skimage.filters.rank.pop(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回像素的局部数量(人口)。

像素数量定义为包含在足迹和掩码中的像素数量。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage.morphology import square, cube # Need to add 3D example
>>> 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)

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

返回像素的局部数量(人口)。

像素数量定义为包含在足迹和掩码中的像素数量。此外,像素的灰度级必须在区间[g-s0, g+s1]内,其中g是中心像素的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

s0, s1int

定义要考虑用于计算值的中心像素灰度值的 [s0, s1] 区间。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

示例

>>> import numpy as np
>>> 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)

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

返回像素的局部数量(人口)。

像素数量定义为包含在足迹和掩码中的像素数量。

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。


skimage.filters.rank.subtract_mean(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

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

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

备注

减去平均值可能会导致下溢。为了弥补这种潜在的下溢,获得的差值将被缩小 2 倍并移动 n_bins / 2 - 1,即局部直方图的中间值(n_bins = max(3, image.max()) +1 对于 16 位图像,否则为 256)。

示例

>>> from skimage import data
>>> from skimage.morphology import disk, ball
>>> from skimage.filters.rank import subtract_mean
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> out = subtract_mean(img, disk(5))
>>> out_vol = subtract_mean(volume, ball(5))

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

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

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。


skimage.filters.rank.sum(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

返回像素的局部总和。

请注意,根据输入数组的数据类型,总和可能会溢出。

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage.morphology import square, cube # Need to add 3D example
>>> import skimage.filters.rank as rank         # Cube seems to fail but
>>> img = np.array([[0, 0, 0, 0, 0],            # Ball can pass
...                 [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)

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

应用一个平坦核双边滤波器。

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

空间接近度是通过仅考虑足迹(结构元素)给出的局部像素邻域来衡量的。

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

只有属于 footprint 并且灰度级在此区间内的像素才会被累加。

请注意,根据输入数组的数据类型,总和可能会溢出。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

s0, s1int

定义要考虑用于计算值的中心像素灰度值的 [s0, s1] 区间。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。

示例

>>> import numpy as np
>>> 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)

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

返回像素的局部总和。

仅考虑百分位数 [p0, p1] 之间的灰度值。

请注意,根据输入数组的数据类型,总和可能会溢出。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0, p1[0, …, 1] 中的浮点数

定义要考虑的 [p0, p1] 百分位数间隔以计算值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。


skimage.filters.rank.threshold(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, shift_z=0)[source]#

图像的局部阈值。

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

参数:
image([P,] M, N) ndarray (uint8, uint16)

输入图像。

footprintndarray

以 1 和 0 的 ndarray 表示的邻域。

out([P,] M, N) 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_y, shift_zint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

返回值:
out([P,] M, N) ndarray(与输入图像相同的数据类型)

输出图像。

示例

>>> from skimage.morphology import square, cube # Need to add 3D example
>>> 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)

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

图像的局部阈值。

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

仅考虑百分位数 [p0, p1] 之间的灰度值。

参数:
image2-D 数组 (uint8, uint16)

输入图像。

footprint2-D 数组

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(与输入相同的数据类型)

如果为 None,则分配一个新的数组。

maskndarray

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

p0float in [0, …, 1]

设置百分位值。

返回值:
out2-D 数组(与输入图像相同的数据类型)

输出图像。


skimage.filters.rank.windowed_histogram(image, footprint, out=None, mask=None, shift_x=0, shift_y=0, n_bins=None)[source]#

归一化滑动窗口直方图

参数:
image2-D 数组(整数或浮点数)

输入图像。

footprint2-D 数组 (整数或浮点数)

以 2-D 数组表示的 1 和 0 的邻域。

out2-D 数组(整数或浮点数),可选

如果为 None,则分配一个新的数组。

maskndarray(整数或浮点数),可选

定义(>0)区域的掩码数组,该区域包含在局部邻域内的图像。如果为 None,则使用完整图像(默认)。

shift_x, shift_yint, 可选

添加到足迹中心点的偏移量。偏移量限制在足迹大小(中心必须在给定的足迹内)。

n_binsint 或 None

直方图箱的数量。如果传递 None,则默认为 image.max() + 1

返回值:
out3-D 数组(浮点数)

维度为 (H,W,N) 的数组,其中 (H,W) 是输入图像的维度,N 是 n_bins 或 image.max() + 1(如果参数未提供任何值)。实际上,每个像素都是一个 N 维特征向量,该向量是直方图。特征向量中元素的总和将为 1,除非窗口中的像素既没有被 footprint 覆盖也没有被 mask 覆盖,在这种情况下,所有元素都将为 0。

示例

>>> from skimage import data
>>> from skimage.filters.rank import windowed_histogram
>>> from skimage.morphology import disk, ball
>>> import numpy as np
>>> img = data.camera()
>>> rng = np.random.default_rng()
>>> volume = rng.integers(0, 255, size=(10,10,10), dtype=np.uint8)
>>> hist_img = windowed_histogram(img, disk(5))

滑动窗口直方图

滑动窗口直方图