當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python cucim.skimage.restoration.denoise_tv_chambolle用法及代碼示例

用法:

cucim.skimage.restoration.denoise_tv_chambolle(image, weight=0.1, eps=0.0002, n_iter_max=200, multichannel=False)

對 n 維圖像執行 total-variation 去噪。

參數

image整數、單位或浮點數的 ndarray

輸入要降噪的數據。 image 可以是任何數字類型,但它被轉換為浮點數的 ndarray 以計算去噪圖像。

weight浮點數,可選

去噪權重。 weight 越大,去噪越多(以犧牲對 input 的保真度為代價)。

eps浮點數,可選

確定停止標準的成本函數值的相對差異。算法在以下情況下停止:

(E_(n-1) - E_n) < 每股收益 * E_0

n_iter_maxint 可選

用於優化的最大迭代次數。

multichannel布爾型,可選

對每個通道分別應用total-variation 去噪。這個選項應該適用於彩色圖像,否則去噪也適用於通道維度。

返回

outndarray

去噪圖像。

注意

確保為彩色圖像設置適當的多通道參數。

全變差去噪的原理在https://en.wikipedia.org/wiki/Total_variation_denoising

全變差去噪的原理是使圖像的總變差最小化,可以粗略地說明為圖像梯度範數的積分。全變差去噪傾向於產生“cartoon-like”圖像,即piecewise-constant圖像。

此代碼是 Chambolle 在[1] 中提出的 Rudin、Fatemi 和 Osher 算法的實現。

參考

1

A. Chambolle, An algorithm for total variation minimization and applications, Journal of Mathematical Imaging and Vision, Springer, 2004, 20, 89-97.

例子

宇航員圖像上的 2D 示例:

>>> from skimage import color, data
>>> img = color.rgb2gray(data.astronaut())[:50, :50]
>>> img += 0.5 * img.std() * np.random.randn(*img.shape)
>>> denoised_img = denoise_tv_chambolle(img, weight=60)

合成數據的 3D 示例:

>>> x, y, z = np.ogrid[0:20, 0:20, 0:20]
>>> mask = (x - 22)**2 + (y - 20)**2 + (z - 17)**2 < 8**2
>>> mask = mask.astype(float)
>>> mask += 0.2*np.random.randn(*mask.shape)
>>> res = denoise_tv_chambolle(mask, weight=100)

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cucim.skimage.restoration.denoise_tv_chambolle。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。