DGtalTools
1.3.beta

Computes a piecewise smooth approximation of a greylevel or color image, by optimizing the AmbrosioTortorelli functional (with u a 2form and v a 0form).
Usage: atu2v0 i [input.pgm]
(for greylevel image restoration)
Usage: atu2v0 i [input.ppm]
(for color image restoration)
The AmbrosioTortorelli functional is a classical relaxation of the MumfordShah functional.
Given an input grayscale image, defined in an open bounded domain \( \Omega \), we represent its gray levels by a function \( g \in L^{\infty}(\Omega) \). In the AmbrosioTortorelli functional [1], one wants to find a function \( u \in SBV(\Omega) \) which is a smooth approximation of the input image \( g \). The AmbrosioTortorelli functional [1] is defined by
\[ \displaystyle AT_{\varepsilon}(u,v) = \int_\Omega \alpha ug^2 + v^2 \nabla u^2 + \lambda \varepsilon \nabla v^2 + \frac{\lambda}{4 \varepsilon} 1v^2 dx, \]
for functions \( u,v \in W^{1,2}(\Omega)\) with \( 0 \leq v \leq 1 \).
In AT functional, function \( v \) is a smooth approximation of the set of discontinuities, and takes value close to 0 in this set, while being close to 1 outside discontinuities. A remarkable property of this functional is that it \( \Gamma \)converges to (a relaxation of) MS functional as \( \varepsilon \) tends to 0 (see [1]). The intuition is that a large \( \varepsilon \) induces a solution with a fuzzy set of discontinuities, which is then progressively narrowed to the crisp 1dimensional set of discontinuites as \( \varepsilon \) goes to 0.
We discretize AT with discrete calculus and we set \( u \) and \( g \) to live on the faces and \( v \) to live on the vertices and edges. Pixels are faces, so functions \( u \) and \( g \) are 2forms since they represent the gray levels of each pixel. On the contrary, we set \( v \) inbetween cells of non null measure, so in this case on vertices as a 0form, and on edges by averaging with \( \mathbf{M} \). We call this formulation AT20. The DEC reformulation is straightforward, except for the second term, where we use matrix \( \mathbf{M} \) to transport the 0form \( v \) onto edges :
\[ \displaystyle AT20(u,v) = \Sigma_{i=1}^n \alpha \langle u_i  g_i , u_i  g_i \rangle_2 + \langle \mathbf{M} v , \bar{\mathbf{\star}} \bar{\mathbf{d_0}} \mathbf{\star} u_i \rangle_1 ^2 \\ + \lambda \varepsilon \langle \mathbf{d_0} v , \mathbf{d_0} v \rangle_1 + \frac{\lambda}{4\varepsilon} \langle 1  v , 1  v \rangle_0. \]
For more details, see Image restoration and inpainting with AmbrosioTortorelli functional
Allowed options are:
example:
Input image g  Reconstructed image u  Perfect image 
SNR of g = 21.9183  SNR of u = 34.3655  Perfect image 
[1] Luigi Ambrosio, and Vincenzo Maria Tortorelli. "Approximation of functional depending on jumps by elliptic functional via \(\Gamma\)āconvergence." Communications on Pure and Applied Mathematics 43.8 (1990): 9991036.
[2] Marion Foare, JacquesOlivier Lachaud, and Hugues Talbot. "Image restoration and segmentation using the AmbrosioTortorelli functional and discrete calculus." In Proceedings of the IAPR International Conference on Pattern Recognition (ICPR2016), Cancun, Mexico, 2016.
[3] Marion Foare, JacquesOlivier Lachaud, and Hugues Talbot. "Numerical implementation of the AmbrosioTortorelli functional using discrete calculus and application to image restoration and inpainting." In Proceedings of 1st Workshop on Reproducible Research In Pattern Recognition (RRPR 2016), Springer LNCS. To appear.
[4] Matteo Focardi. "On the variational approximation of free discontinuity problems in the vectorial case." Mathematical Models and Methods in Applied Sciences 11.04 (2001): 663684.