def test_invariant_denoise_color(): denoised_img_color = _invariant_denoise( noisy_img_color, _denoise_wavelet, denoiser_kwargs=dict(multichannel=True)) denoised_mse = mse(denoised_img_color, test_img_color) original_mse = mse(noisy_img_color, test_img_color) assert_(denoised_mse < original_mse)
def test_invariant_denoise_color(dtype): denoised_img_color = _invariant_denoise( noisy_img_color.astype(dtype), _denoise_wavelet, denoiser_kwargs=dict(channel_axis=-1)) denoised_mse = mse(denoised_img_color, test_img_color) original_mse = mse(noisy_img_color, test_img_color) assert denoised_mse < original_mse assert denoised_img_color.dtype == _supported_float_type(dtype)
def test_invariant_denoise_color_deprecated(): with expected_warnings(["`multichannel` is a deprecated argument"]): denoised_img_color = _invariant_denoise( noisy_img_color, _denoise_wavelet, denoiser_kwargs=dict(multichannel=True)) denoised_mse = mse(denoised_img_color, test_img_color) original_mse = mse(noisy_img_color, test_img_color) assert_(denoised_mse < original_mse)
def test_calibrate_denoiser_extra_output(): parameter_ranges = {'sigma': np.linspace(0.1, 1, 5) / 2} _, (parameters_tested, losses) = calibrate_denoiser(noisy_img, _denoise_wavelet, denoise_parameters=parameter_ranges, extra_output=True) all_denoised = [ _invariant_denoise(noisy_img, _denoise_wavelet, denoiser_kwargs=denoiser_kwargs) for denoiser_kwargs in parameters_tested ] ground_truth_losses = [mse(img, test_img) for img in all_denoised] assert_(np.argmin(losses) == np.argmin(ground_truth_losses))
def test_invariant_denoise_3d(): denoised_img_3d = _invariant_denoise(noisy_img_3d, _denoise_wavelet) denoised_mse = mse(denoised_img_3d, test_img_3d) original_mse = mse(noisy_img_3d, test_img_3d) assert_(denoised_mse < original_mse)
def test_invariant_denoise(): denoised_img = _invariant_denoise(noisy_img, _denoise_wavelet) denoised_mse = mse(denoised_img, test_img) original_mse = mse(noisy_img, test_img) assert_(denoised_mse < original_mse)
# blue line) have the same shape and the same minimizer. # from skimage.restoration.j_invariant import _invariant_denoise sigma_range = np.arange(sigma / 2, 1.5 * sigma, 0.025) parameters_tested = [{ 'sigma': sigma, 'convert2ycbcr': True, 'wavelet': 'db2', 'multichannel': True } for sigma in sigma_range] denoised_invariant = [ _invariant_denoise(noisy, _denoise_wavelet, denoiser_kwargs=params) for params in parameters_tested ] self_supervised_loss = [mse(img, noisy) for img in denoised_invariant] ground_truth_loss = [mse(img, image) for img in denoised_invariant] opt_idx = np.argmin(self_supervised_loss) plot_idx = [0, opt_idx, len(sigma_range) - 1] get_inset = lambda x: x[25:225, 100:300] plt.figure(figsize=(10, 12)) gs = gridspec.GridSpec(3, 3) ax1 = plt.subplot(gs[0, :])