用法:
skimage.restoration.denoise_wavelet(image, sigma=None, wavelet='db1', mode='soft', wavelet_levels=None, multichannel=False, convert2ycbcr=False, method='BayesShrink', rescale_sigma=True, *, channel_axis=None)
對圖像進行小波去噪。
- image:ndarray ([M[, N[, …P]][, C]) 整數、單位或浮點數
輸入要降噪的數據。 image 可以是任何數字類型,但它被轉換為浮點數的 ndarray 以計算去噪圖像。
- sigma:浮點數或列表,可選
計算小波細節係數閾值時使用的噪聲標準偏差。當 None (默認)時,通過 [2] 中的方法估計噪聲標準偏差。
- wavelet:字符串,可選
要執行的小波類型,可以是任何選項
pywt.wavelist
輸出。默認是‘db1’.例如,wavelet
可以是任何一個{'db2', 'haar', 'sym9'}
還有很多。- mode:{‘soft’, ‘hard’},可選
用於選擇執行的去噪類型的可選參數。它指出,在給定加性噪聲的情況下選擇軟閾值可以找到原始圖像的最佳近似值。
- wavelet_levels:int 或無,可選
要使用的小波分解級別數。默認值比可能的分解級別的最大數量少三。
- multichannel:布爾型,可選
對每個通道分別應用小波去噪(其中通道對應於陣列的最後一個軸)。不推薦使用此參數:改為指定 channel_axis。
- convert2ycbcr:布爾型,可選
如果為真且多通道為真,則在 YCbCr 顏色空間而不是 RGB 顏色空間中進行小波去噪。這通常會為 RGB 圖像帶來更好的性能。
- method:{‘BayesShrink’, ‘VisuShrink’},可選
要使用的閾值方法。當前支持的方法是 “BayesShrink” [1] 和 “VisuShrink” [2] 。默認為“BayesShrink”。
- rescale_sigma:布爾型,可選
如果為 False,則不會重新調整用戶提供的
sigma
。如果圖像在內部重新縮放,則True
的默認值會適當地重新縮放 sigma。- channel_axis:int 或無,可選
如果為 None,則假定圖像是灰度(單通道)圖像。否則,此參數指示數組的哪個軸對應於通道。
- out:ndarray
去噪圖像。
- multichannel:DEPRECATED
已棄用以支持channel_axis。
參數:
返回:
其他參數:
注意:
小波域是圖像的稀疏表示,可以認為類似於傅裏葉變換的頻域。稀疏表示的大多數值為零或接近零,並且真正的隨機噪聲(通常)由小波域中的許多小值表示。將低於某個閾值的所有值設置為 0 會減少圖像中的噪點,但較大的閾值也會減少圖像中存在的細節。
如果輸入是 3D,這個函數分別對每個顏色平麵進行小波去噪。
已經提出了許多小波係數閾值方法。默認情況下,
denoise_wavelet
應用 BayesShrink,這是一種自適應閾值方法,可以為每個小波 sub-band 計算單獨的閾值,如 [1] 中所述。如果
method == "VisuShrink"
,則將單個 “universal threshold” 應用於所有小波細節係數,如 [2] 中所述。該閾值旨在以高概率去除給定sigma
處的所有高斯噪聲,但往往會產生看起來過於平滑的圖像。盡管可以選擇
PyWavelets
中的任何小波,但閾值處理方法假定正交小波變換並且可能無法為雙正交小波選擇適當的閾值。正交小波是可取的,因為輸入中的白噪聲仍然是子帶中的白噪聲。雙正交小波導致子帶中的有色噪聲。此外,PyWavelets 中的正交小波是正交的,因此子帶中的噪聲方差與輸入的噪聲方差保持相同。示例正交小波是 Daubechies(例如‘db2’)或 symmlet(例如‘sym2’)族。參考:
- 1(1,2)
Chang, S. Grace, Bin Yu, and Martin Vetterli. “Adaptive wavelet thresholding for image denoising and compression.” Image Processing, IEEE Transactions on 9.9 (2000): 1532-1546. DOI:10.1109/83.862633
- 2(1,2,3)
D. L. Donoho and I. M. Johnstone. “Ideal spatial adaptation by wavelet shrinkage.” Biometrika 81.3 (1994): 425-455. DOI:10.1093/biomet/81.3.425
例子:
>>> from skimage import color, data >>> img = img_as_float(data.astronaut()) >>> img = color.rgb2gray(img) >>> rng = np.random.default_rng() >>> img += 0.1 * rng.standard_normal(img.shape) >>> img = np.clip(img, 0, 1) >>> denoised_img = denoise_wavelet(img, sigma=0.1, rescale_sigma=True)
相關用法
- Python skimage.restoration.denoise_tv_chambolle用法及代碼示例
- Python skimage.restoration.denoise_bilateral用法及代碼示例
- Python skimage.restoration.denoise_nl_means用法及代碼示例
- Python skimage.restoration.wiener用法及代碼示例
- Python skimage.restoration.cycle_spin用法及代碼示例
- Python skimage.restoration.unwrap_phase用法及代碼示例
- Python skimage.restoration.estimate_sigma用法及代碼示例
- Python skimage.restoration.inpaint_biharmonic用法及代碼示例
- Python skimage.restoration.richardson_lucy用法及代碼示例
- Python skimage.restoration.calibrate_denoiser用法及代碼示例
- Python skimage.restoration.unsupervised_wiener用法及代碼示例
- Python skimage.restoration.rolling_ball用法及代碼示例
- Python skimage.registration.optical_flow_tvl1用法及代碼示例
- Python skimage.registration.optical_flow_ilk用法及代碼示例
- Python skimage.feature.graycomatrix用法及代碼示例
- Python skimage.color.lab2lch用法及代碼示例
- Python skimage.draw.random_shapes用法及代碼示例
- Python skimage.feature.blob_doh用法及代碼示例
- Python skimage.feature.blob_dog用法及代碼示例
- Python skimage.filters.unsharp_mask用法及代碼示例
注:本文由純淨天空篩選整理自scikit-image.org大神的英文原創作品 skimage.restoration.denoise_wavelet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。