skimage.filters.rank
#
使用局部直方圖自動調整影像的色階。 |
|
傳回影像的灰階局部自動色階調整結果。 |
|
增強影像的對比度。 |
|
增強影像的對比度。 |
|
局部熵值。 |
|
使用局部直方圖均衡化影像。 |
|
傳回影像的局部幾何平均值。 |
|
傳回影像的局部梯度(即局部最大值 - 局部最小值)。 |
|
傳回影像的局部梯度(即局部最大值 - 局部最小值)。 |
|
將每個像素指定為其鄰域內最常見的值。 |
|
傳回影像的局部最大值。 |
|
傳回影像的局部平均值。 |
|
套用平坦核雙邊濾波器。 |
|
傳回影像的局部平均值。 |
|
傳回影像的局部中位數。 |
|
傳回影像的局部最小值。 |
|
傳回影像的局部眾數。 |
|
雜訊特徵。 |
|
每個像素的局部 Otsu 閾值。 |
|
傳回影像的局部百分位數。 |
|
傳回像素的局部數量(母體數)。 |
|
傳回像素的局部數量(母體數)。 |
|
傳回像素的局部數量(母體數)。 |
|
傳回從其局部平均值中減去的影像。 |
|
傳回從其局部平均值中減去的影像。 |
|
傳回像素的局部總和。 |
|
套用平坦核雙邊濾波器。 |
|
傳回像素的局部總和。 |
|
影像的局部閾值。 |
|
影像的局部閾值。 |
|
正規化滑動視窗直方圖 |
- 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))