darsia.split_bregman_tvd#
- split_bregman_tvd(img, mu=1.0, omega=1.0, ell=None, dim=2, max_num_iter=100, eps=None, x0=None, isotropic=False, verbose=False, solver=<darsia.utils.linear_solvers.jacobi.Jacobi object>, adaptive=None)[source]#
Split Bregman algorithm for TV denoising.
The Bregman iteration introduces a regularization term to the TV denoising allowing for a split of the problem into two subproblems. The first subproblem is a diffusion equation with a mass penalization term, the second subproblem is a shrinkage step. The regularization term is weighted by the parameter ell.
- Parameters:
- img
array Image array.
- mu
floatorarray TV penalization parameter.
- omega
floatorarray Mass penalization parameter.
- ell
floatorarray Regularization parameter.
- dim
int Spatial dimension of the image.
- max_num_iter
int Maximum number of iterations.
- eps
float Tolerance for relative increment of the energy functional.
- x0
tupleofarrays,optional Initial guess for image and split Bregman variables.
- isotropicbool
Whether to use isotropic TV denoising.
- verbosebool,
int Verbosity (frequency if int).
- solver
da.Solver Solver to use for the inner linear system.
- adaptive
lambda,Optional Adaptivity schedule.
- img
- Returns:
arrayDenoised image.