注意
前往結尾以下載完整的範例程式碼。或透過 Binder 在您的瀏覽器中執行此範例
使用 J-不變性校準降噪器#
在此範例中,我們展示如何找到任何降噪演算法的最佳校準版本。
校準方法基於 noise2self
演算法,如 [1] 所述。
另請參閱
有關此方法的更多詳細資訊,請參閱完整教學 使用 J-不變性校準降噪器的完整教學。
校準小波降噪器
import numpy as np
from matplotlib import pyplot as plt
from skimage.data import chelsea
from skimage.restoration import calibrate_denoiser, denoise_wavelet
from skimage.util import img_as_float, random_noise
from functools import partial
# rescale_sigma=True required to silence deprecation warnings
_denoise_wavelet = partial(denoise_wavelet, rescale_sigma=True)
image = img_as_float(chelsea())
sigma = 0.3
noisy = random_noise(image, var=sigma**2)
# Parameters to test when calibrating the denoising algorithm
parameter_ranges = {
'sigma': np.arange(0.1, 0.3, 0.02),
'wavelet': ['db1', 'db2'],
'convert2ycbcr': [True, False],
'channel_axis': [-1],
}
# Denoised image using default parameters of `denoise_wavelet`
default_output = denoise_wavelet(noisy, channel_axis=-1, rescale_sigma=True)
# Calibrate denoiser
calibrated_denoiser = calibrate_denoiser(
noisy, _denoise_wavelet, denoise_parameters=parameter_ranges
)
# Denoised image using calibrated denoiser
calibrated_output = calibrated_denoiser(noisy)
fig, axes = plt.subplots(1, 3, sharex=True, sharey=True, figsize=(15, 5))
for ax, img, title in zip(
axes,
[noisy, default_output, calibrated_output],
['Noisy Image', 'Denoised (Default)', 'Denoised (Calibrated)'],
):
ax.imshow(img)
ax.set_title(title)
ax.set_yticks([])
ax.set_xticks([])
plt.show()

Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers). Got range [-0.13440782687445413..0.9157507626261773].
指令碼的總執行時間:(0 分鐘 2.215 秒)