skimage.filters.rank#

autolevel

使用局部直方圖自動調整影像的色階。

autolevel_percentile

傳回影像的灰階局部自動色階調整結果。

enhance_contrast

增強影像的對比度。

enhance_contrast_percentile

增強影像的對比度。

entropy

局部熵值。

equalize

使用局部直方圖均衡化影像。

geometric_mean

傳回影像的局部幾何平均值。

gradient

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

gradient_percentile

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

majority

將每個像素指定為其鄰域內最常見的值。

maximum

傳回影像的局部最大值。

mean

傳回影像的局部平均值。

mean_bilateral

套用平坦核雙邊濾波器。

mean_percentile

傳回影像的局部平均值。

median

傳回影像的局部中位數。

minimum

傳回影像的局部最小值。

modal

傳回影像的局部眾數。

noise_filter

雜訊特徵。

otsu

每個像素的局部 Otsu 閾值。

percentile

傳回影像的局部百分位數。

pop

傳回像素的局部數量(母體數)。

pop_bilateral

傳回像素的局部數量(母體數)。

pop_percentile

傳回像素的局部數量(母體數)。

subtract_mean

傳回從其局部平均值中減去的影像。

subtract_mean_percentile

傳回從其局部平均值中減去的影像。

sum

傳回像素的局部總和。

sum_bilateral

套用平坦核雙邊濾波器。

sum_percentile

傳回像素的局部總和。

threshold

影像的局部閾值。

threshold_percentile

影像的局部閾值。

windowed_histogram

正規化滑動視窗直方圖


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

使用局部直方圖自動調整影像的色階。

此濾波器會局部伸展灰階值的直方圖,以涵蓋從「白色」到「黑色」的整個值範圍。

參數:
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)[原始碼]#

傳回影像的灰階局部自動色階調整結果。

此濾波器會局部伸展灰階值的直方圖,以涵蓋從「白色」到「黑色」的整個值範圍。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

排序濾波器

排序濾波器

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

增強影像的對比度。

如果像素灰階值較接近局部最大值而不是局部最小值,此函式會將每個像素取代為局部最大值。否則,它會被局部最小值取代。

參數:
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)[原始碼]#

增強影像的對比度。

如果像素灰階值較接近局部最大值而不是局部最小值,此函式會將每個像素取代為局部最大值。否則,它會被局部最小值取代。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

排序濾波器

排序濾波器

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

局部熵值。

熵是使用以 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)[原始碼]#

使用局部直方圖均衡化影像。

參數:
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)[原始碼]#

傳回影像的局部幾何平均值。

參數:
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. and Woods, R. E. “數位影像處理(第三版)。” 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)[原始碼]#

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

參數:
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)[原始碼]#

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

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。


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

將每個像素指定為其鄰域內最常見的值。

參數:
imagendarray

影像陣列(uint8、uint16 陣列)。

footprint二維陣列 (整數或浮點數)

鄰域表示為 1 和 0 的 2 維陣列。

outndarray (整數或浮點數), 可選

若為 None,將會配置一個新的陣列。

maskndarray(整數或浮點數),可選

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint, 可選

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

範例

>>> 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)[原始碼]#

傳回影像的局部最大值。

參數:
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)[原始碼]#

傳回影像的局部平均值。

參數:
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)[原始碼]#

套用平坦核雙邊濾波器。

這是一個保留邊緣並降低雜訊的去雜訊濾波器。它會根據像素的空間接近度和輻射相似度來平均像素。

空間接近度是透過僅考慮足跡(結構元素)給定的局部像素鄰域來測量的。

輻射相似度由灰階區間 [g-s0, g+s1] 定義,其中 g 是目前像素的灰階值。

只會平均屬於足跡且灰階值在此區間內的像素。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

s0, s1int

定義中心像素灰階值周圍的 [s0, s1] 區間,以用於計算數值。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

範例

>>> 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)[原始碼]#

傳回影像的局部平均值。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

均值濾波器

均值濾波器

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

傳回影像的局部中位數。

參數:
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)[原始碼]#

傳回影像的局部最小值。

參數:
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)[原始碼]#

傳回影像的局部眾數。

眾數是局部直方圖中出現最頻繁的值。

參數:
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)[原始碼]#

雜訊特徵。

參數:
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 等人。Referenceless image quality evaluation for whole slide imaging. 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)[原始碼]#

每個像素的局部大津閾值。

參數:
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)[原始碼]#

傳回影像的局部百分位數。

傳回局部灰度值分佈的第 p0 個較低百分位數的值。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0float,範圍在 [0, …, 1] 之間

設定百分位數值。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。


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

傳回像素的局部數量(母體數)。

像素數定義為包含在足跡和遮罩中的像素數。

參數:
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 footprint_rectangle # 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, footprint_rectangle((3, 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)[原始碼]#

傳回像素的局部數量(母體數)。

像素數定義為包含在足跡和遮罩中的像素數。此外,像素的灰度值必須在區間 [g-s0, g+s1] 內,其中 g 是中心像素的灰度值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

s0, s1int

定義中心像素灰階值周圍的 [s0, s1] 區間,以用於計算數值。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

範例

>>> import numpy as np
>>> from skimage.morphology import footprint_rectangle
>>> 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, footprint_rectangle((3, 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)[原始碼]#

傳回像素的局部數量(母體數)。

像素數定義為包含在足跡和遮罩中的像素數。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。


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

傳回從其局部平均值中減去的影像。

參數:
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,即局部直方圖的中位數(對於 16 位元影像,n_bins = max(3, image.max()) +1,否則為 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)[原始碼]#

傳回從其局部平均值中減去的影像。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。


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

傳回像素的局部總和。

請注意,總和可能會根據輸入陣列的資料類型而溢位。

參數:
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 footprint_rectangle # 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, footprint_rectangle((3, 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)[原始碼]#

套用平坦核雙邊濾波器。

這是一個保留邊緣並降低雜訊的去雜訊濾波器。它會根據像素的空間接近度和輻射相似度來平均像素。

空間接近度是透過僅考慮足跡(結構元素)給定的局部像素鄰域來測量的。

輻射相似度由灰階區間 [g-s0, g+s1] 定義,其中 g 是目前像素的灰階值。

只會加總屬於足跡範圍內,且灰度值在該區間內的像素。

請注意,總和可能會根據輸入陣列的資料類型而溢位。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

s0, s1int

定義中心像素灰階值周圍的 [s0, s1] 區間,以用於計算數值。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。

範例

>>> 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)[原始碼]#

傳回像素的局部總和。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

請注意,總和可能會根據輸入陣列的資料類型而溢位。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0, p1介於 [0, …, 1] 的浮點數

定義用於計算值的 [p0, p1] 百分位數間隔。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。


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

影像的局部閾值。

如果中心像素的灰度值大於局部均值,則產生的二值遮罩為 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 footprint_rectangle # 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, footprint_rectangle((3, 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)[原始碼]#

影像的局部閾值。

如果中心像素的灰度值大於局部均值,則產生的二值遮罩為 True。

在濾波器中,只會考慮介於百分位數 [p0, p1] 之間的灰階值。

參數:
image2 維陣列 (uint8, uint16)

輸入影像。

footprint2 維陣列

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(與輸入相同的資料類型)

如果為 None,則會配置一個新陣列。

maskndarray

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

p0float,範圍在 [0, …, 1] 之間

設定百分位數值。

傳回:
out2 維陣列(與輸入影像相同的資料類型)

輸出影像。


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

正規化滑動視窗直方圖

參數:
image2 維陣列(整數或浮點數)

輸入影像。

footprint二維陣列 (整數或浮點數)

鄰域表示為 1 和 0 的 2 維陣列。

out2 維陣列(整數或浮點數),可選

如果為 None,則會配置一個新陣列。

maskndarray(整數或浮點數),可選

遮罩陣列,用於定義包含在局部鄰域中的影像區域(>0)。如果為 None,則會使用完整影像(預設)。

shift_x, shift_yint, 可選

新增至足跡中心點的偏移量。偏移量受足跡大小限制(中心必須位於給定的足跡內)。

n_bins整數或 None

直方圖箱的數量。如果傳遞 None,則預設為 image.max() + 1

傳回:
out3 維陣列(浮點數)

維度為 (H, W, N) 的陣列,其中 (H, W) 是輸入影像的維度,而 N 是 n_bins 或 image.max() + 1(如果沒有提供參數值)。實際上,每個像素都是一個 N 維特徵向量,即直方圖。特徵向量中元素的總和將為 1,除非視窗中沒有像素被足跡和遮罩覆蓋,在這種情況下,所有元素將為 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))

滑動視窗直方圖

滑動視窗直方圖