deepmr.prox.wavelet_dict_denoise#
- deepmr.prox.wavelet_dict_denoise(input, ndim, ths, wv=None, device=None, non_linearity='soft', level=None, max_iter=10)[source]#
Apply overcomplete Wavelet denoising with the \(\ell_1\) norm.
This denoiser is defined as the solution to the optimization problem:
\[\underset{x}{\arg\min} \; \|x-y\|^2 + \lambda \|\Psi x\|_n\]where \(\Psi\) is an overcomplete wavelet transform, composed of 2 or more wavelets, i.e., \(\Psi=[\Psi_1,\Psi_2,\dots,\Psi_L]\), \(\lambda>0\) is a hyperparameter, and where \(\|\cdot\|_n\) is either the \(\ell_1\) norm (
non_linearity="soft"
), the \(\ell_0\) norm (non_linearity="hard"
) or a variant of the \(\ell_0\) norm (non_linearity="topk"
) where only the top-k coefficients are kept; seedeepinv.models.WaveletDenoiser()
for more details.The solution is not available in closed-form, thus the denoiser runs an optimization algorithm for each test image.
- deepmr.prox.input#
Input image of shape (…, n_ndim, …, n_0).
- Type:
np.ndarray | torch.Tensor
- deepmr.prox.wv#
List of mother wavelets. The names of the wavelets can be found in here. The default is
["db8", "db4"]
.- Type:
Iterable[str], optional
- deepmr.prox.device#
Device on which the wavelet transform is computed. The default is
None
(infer from input).- Type:
str, optional
- deepmr.prox.non_linearity#
"soft"
,"hard"
or"topk"
thresholding. The default is"soft"
.- Type:
str, optional
- deepmr.prox.max_iter#
Number of iterations of the optimization algorithm. The default is
10
.- Type:
int, optional
- Returns:
output – Denoised image of shape (…, n_ndim, …, n_0).
- Return type:
np.ndarray | torch.Tensor