Operators |
inpainting_ced — Perform an inpainting by coherence enhancing diffusion.
inpainting_ced(Image, Region : InpaintedImage : Sigma, Rho, Theta, Iterations : )
The operator inpainting_ced performs an anisotropic diffusion process on the region Region of the input image Image with the objective of completing discontinuous image edges diffusively by increasing the coherence of the image structures contained in Image and without smoothing these edges perpendicular to their dominating direction. The mechanism is the same as in the operator coherence_enhancing_diff, which is based on a discretization of the anisotropic diffusion equation
To detect the image direction more robustly, in particular on noisy input data, an additional isotropic smoothing step can precede the computation of the gray value gradients. The parameter Sigma determines the magnitude of the smoothing by means of the standard deviation of a corresponding Gaussian convolution kernel, as used in the operator isotropic_diffusion for isotropic image smoothing.
Similar to the operator inpainting_mcf, the structure of the image data in Region is simplified by smoothing the level lines of Image. By this, image errors and unwanted objects can be removed from the image, while the edges in the neighborhood are extended continuously. This procedure is called image inpainting. The objective is to introduce a minimum amount of artefacts or smoothing effects, so that the image manipulation is least visible to a human beholder.
While the matrix G is given by
Hence, the diffusion direction in mean_curvature_flow is only determined by the local direction of the gray value gradient, while considers the macroscopic structure of the image objects on the scale Rho and the magnitude of the diffusion in coherence_enhancing_diff depends on how well this structure is defined.
To achieve the highest possible consistency of the newly created edges with the image data from the neighbourhood, the gray values are not mirrored at the border of Region to compute the convolution with the smoothing filter mask of scale Rho on the pixels close to the border, although this would be the common approach for filter operators. Instead, the existence of gray values on a band of width ceil(3.1*Rho)+2 pixels around Region is presumed and these values are used in the convolution. This means that Region must keep this much distance to the border of the image matrix Image. By involving the gray values and directional information from this extended area, it can be achieved that the continuation of the edges is not only continuous, but also smooth, which means without kinks. Please note that the inpainting progress is restricted to those pixels that are included in the ROI of the input image Image. If the ROI does not include the entire region Region, a band around the intersection of Region and the ROI is used to define the boundary values.
To decrease the number of iterations required for attaining a satisfactory result, it may be useful to initialize the gray value matrix in Region with the harmonic interpolant, a continuous function of minimal curvature, by applying the operator harmonic_interpolation to Image before calling inpainting_ced .
Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.
Input image.
Inpainting region.
Output image.
Smoothing for derivative operator.
Default value: 0.5
Suggested values: 0.0, 0.1, 0.5, 1.0
Restriction: Sigma >= 0
Smoothing for diffusion coefficients.
Default value: 3.0
Suggested values: 0.0, 1.0, 3.0, 5.0, 10.0, 30.0
Restriction: Rho >= 0
Time step.
Default value: 0.5
Suggested values: 0.1, 0.2, 0.3, 0.4, 0.5
Restriction: 0 < Theta <= 0.5
Number of iterations.
Default value: 10
Suggested values: 1, 5, 10, 20, 50, 100, 500
Restriction: Iterations >= 1
read_image (Image, 'fabrik') gen_rectangle1 (Rectangle, 270, 180, 320, 230) harmonic_interpolation (Image, Rectangle, InpaintedImage, 0.01) inpainting_ced (InpaintedImage, Rectangle, InpaintedImage2, \ 0.5, 3.0, 0.5, 1000) dev_display(InpaintedImage2)
harmonic_interpolation, inpainting_ct, inpainting_aniso, inpainting_mcf, inpainting_texture
J. Weickert, V. Hlavac, R. Sara; “Multiscale texture
enhancement”; Computer analysis of images and patterns, Lecture
Notes in Computer Science, Vol. 970, pp. 230-237; Springer,
Berlin; 1995.
J. Weickert, B. ter Haar Romeny, L. Florack, J. Koenderink,
M. Viergever; “A review of nonlinear diffusion filtering”;
Scale-Space Theory in Computer Vision, Lecture Notes in
Comp. Science, Vol. 1252, pp. 3-28; Springer, Berlin; 1997.
Foundation
Operators |