用法:
skimage.filters.unsharp_mask(image, radius=1.0, amount=1.0, multichannel=False, preserve_range=False, *, channel_axis=None)
不銳化掩蔽濾鏡。
清晰的細節被識別為原始圖像與其模糊版本之間的差異。然後將這些細節縮放,並添加回原始圖像。
- image:[P, ..., ]M[, N][, C] ndarray
輸入圖像。
- radius:標量或標量序列,可選
如果給定一個標量,那麽它的值將用於所有維度。如果給出了序列,那麽除了多通道圖像的最後一個維度之外,每個維度都必須有一個半徑。請注意,0 半徑表示沒有模糊,並且不允許使用負值。
- amount:標量,可選
細節將被這個因子放大。該因子可以為 0 或負數。通常,它是一個小的正數,例如1.0。
- multichannel:布爾型,可選
如果為真,最後一個
image
維度被視為顏色通道,否則視為空間。顏色通道是單獨處理的。此參數已棄用:指定channel_axis反而。- preserve_range:布爾型,可選
是否保持原來的取值範圍。否則,輸入圖像將根據
img_as_float
的約定進行轉換。另見https://scikit-image.org/docs/dev/user_guide/data_types.html- channel_axis:int 或無,可選
如果為 None,則假定圖像是灰度(單通道)圖像。否則,此參數指示數組的哪個軸對應於通道。
- output:[P, ..., ]M[, N][, C] ndarray of float
應用了模糊蒙版的圖像。
- multichannel:DEPRECATED
已棄用以支持channel_axis。
參數:
返回:
其他參數:
注意:
Unsharp masking 是一種圖像銳化技術。它是一種線性圖像操作,並且數值穩定,不像是ill-posed 問題的反卷積。由於這種穩定性,它通常比反卷積更受歡迎。
主要思想如下:銳利的細節被識別為原始圖像與其模糊版本之間的差異。這些細節在縮放步驟後被添加回原始圖像:
增強圖像 = 原始 + 數量 *(原始 - 模糊)
將此濾鏡單獨應用於多個顏色層時,可能會發生顏色滲色。通過僅在適當的色彩空間(例如 HSV、HSL、YUV 或 YCbCr)中處理亮度/明度/強度通道,可以獲得更視覺上令人愉悅的結果。
大多數介紹性數字圖像處理書籍中都說明了銳化遮罩。此實現基於 [1] 。
參考:
- 1
Maria Petrou, Costas Petrou “Image Processing: The Fundamentals”, (2010), ed ii., page 357, ISBN 13: 9781119994398 DOI:10.1002/9781119994398
- 2
Wikipedia. Unsharp masking https://en.wikipedia.org/wiki/Unsharp_masking
例子:
>>> array = np.ones(shape=(5,5), dtype=np.uint8)*100 >>> array[2,2] = 120 >>> array array([[100, 100, 100, 100, 100], [100, 100, 100, 100, 100], [100, 100, 120, 100, 100], [100, 100, 100, 100, 100], [100, 100, 100, 100, 100]], dtype=uint8) >>> np.around(unsharp_mask(array, radius=0.5, amount=2),2) array([[0.39, 0.39, 0.39, 0.39, 0.39], [0.39, 0.39, 0.38, 0.39, 0.39], [0.39, 0.38, 0.53, 0.38, 0.39], [0.39, 0.39, 0.38, 0.39, 0.39], [0.39, 0.39, 0.39, 0.39, 0.39]])
>>> array = np.ones(shape=(5,5), dtype=np.int8)*100 >>> array[2,2] = 127 >>> np.around(unsharp_mask(array, radius=0.5, amount=2),2) array([[0.79, 0.79, 0.79, 0.79, 0.79], [0.79, 0.78, 0.75, 0.78, 0.79], [0.79, 0.75, 1. , 0.75, 0.79], [0.79, 0.78, 0.75, 0.78, 0.79], [0.79, 0.79, 0.79, 0.79, 0.79]])
>>> np.around(unsharp_mask(array, radius=0.5, amount=2, preserve_range=True), 2) array([[100. , 100. , 99.99, 100. , 100. ], [100. , 99.39, 95.48, 99.39, 100. ], [ 99.99, 95.48, 147.59, 95.48, 99.99], [100. , 99.39, 95.48, 99.39, 100. ], [100. , 100. , 99.99, 100. , 100. ]])
相關用法
- Python skimage.filters.rank.noise_filter用法及代碼示例
- Python skimage.filters.gaussian用法及代碼示例
- Python skimage.filters.threshold_otsu用法及代碼示例
- Python skimage.filters.rank.sum用法及代碼示例
- Python skimage.filters.window用法及代碼示例
- Python skimage.filters.gabor用法及代碼示例
- Python skimage.filters.rank.autolevel用法及代碼示例
- Python skimage.filters.threshold_li用法及代碼示例
- Python skimage.filters.rank.pop用法及代碼示例
- Python skimage.filters.rank.mean用法及代碼示例
- Python skimage.filters.rank.pop_bilateral用法及代碼示例
- Python skimage.filters.rank.maximum用法及代碼示例
- Python skimage.filters.roberts用法及代碼示例
- Python skimage.filters.rank.equalize用法及代碼示例
- Python skimage.filters.rank.enhance_contrast用法及代碼示例
- Python skimage.filters.rank.gradient用法及代碼示例
- Python skimage.filters.LPIFilter2D.__init__用法及代碼示例
- Python skimage.filters.farid用法及代碼示例
- Python skimage.filters.rank_order用法及代碼示例
- Python skimage.filters.threshold_niblack用法及代碼示例
注:本文由純淨天空篩選整理自scikit-image.org大神的英文原創作品 skimage.filters.unsharp_mask。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。