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:
imgarray

Image array.

mufloat or array

TV penalization parameter.

omegafloat or array

Mass penalization parameter.

ellfloat or array

Regularization parameter.

dimint

Spatial dimension of the image.

max_num_iterint

Maximum number of iterations.

epsfloat

Tolerance for relative increment of the energy functional.

x0tuple of arrays, optional

Initial guess for image and split Bregman variables.

isotropicbool

Whether to use isotropic TV denoising.

verbosebool, int

Verbosity (frequency if int).

solverda.Solver

Solver to use for the inner linear system.

adaptivelambda, Optional

Adaptivity schedule.

Returns:
array

Denoised image.