Name
inpainting_ced inpainting_ced InpaintingCed inpainting_ced InpaintingCed InpaintingCed — Perform an inpainting by coherence enhancing diffusion.
Herror inpainting_ced (const Hobject Image , const Hobject Region , Hobject* InpaintedImage , double Sigma , double Rho , double Theta , const Hlong Iterations )
Herror T_inpainting_ced (const Hobject Image , const Hobject Region , Hobject* InpaintedImage , const Htuple Sigma , const Htuple Rho , const Htuple Theta , const Htuple Iterations )
Herror inpainting_ced (Hobject Image , Hobject Region , Hobject* InpaintedImage , const HTuple& Sigma , const HTuple& Rho , const HTuple& Theta , const HTuple& Iterations )
HImage HImage ::InpaintingCed (const HRegion& Region , const HTuple& Sigma , const HTuple& Rho , const HTuple& Theta , const HTuple& Iterations ) const
HImageArray HImageArray ::InpaintingCed (const HRegion& Region , const HTuple& Sigma , const HTuple& Rho , const HTuple& Theta , const HTuple& Iterations ) const
void InpaintingCed (const HObject& Image , const HObject& Region , HObject* InpaintedImage , const HTuple& Sigma , const HTuple& Rho , const HTuple& Theta , const HTuple& Iterations )
HImage HImage ::InpaintingCed (const HRegion& Region , double Sigma , double Rho , double Theta , Hlong Iterations ) const
void HOperatorSetX .InpaintingCed ( [in] IHUntypedObjectX* Image , [in] IHUntypedObjectX* Region , [out] IHUntypedObjectX* * InpaintedImage , [in] VARIANT Sigma , [in] VARIANT Rho , [in] VARIANT Theta , [in] VARIANT Iterations )
IHImageX* HImageX .InpaintingCed ( [in] IHRegionX* Region , [in] double Sigma , [in] double Rho , [in] double Theta , [in] Hlong Iterations )
static void HOperatorSet .InpaintingCed (HObject image , HObject region , out HObject inpaintedImage , HTuple sigma , HTuple rho , HTuple theta , HTuple iterations )
HImage HImage .InpaintingCed (HRegion region , double sigma , double rho , double theta , int iterations )
The operator inpainting_ced inpainting_ced InpaintingCed inpainting_ced InpaintingCed InpaintingCed performs an anisotropic
diffusion process on the region Region Region Region Region Region region of the input image
Image Image Image Image Image image with the objective of completing discontinuous image
edges diffusively by increasing the coherence of the image
structures contained in Image Image Image Image Image image and without smoothing these
edges perpendicular to their dominating direction. The mechanism is
the same as in the operator coherence_enhancing_diff coherence_enhancing_diff CoherenceEnhancingDiff coherence_enhancing_diff CoherenceEnhancingDiff CoherenceEnhancingDiff , which
is based on a discretization of the anisotropic diffusion equation
formulated by Weickert. With a 2x2 coefficient
matrix G that depends on the gray values in Image Image Image Image Image image , this
is an enhancement of the mean curvature flow or intrinsic heat
equation
on the gray value function u defined by the input image
Image Image Image Image Image image at a time
. The smoothing
operator mean_curvature_flow mean_curvature_flow MeanCurvatureFlow mean_curvature_flow MeanCurvatureFlow MeanCurvatureFlow is a direct application of the
mean curvature flow equation. With the operator
inpainting_mcf inpainting_mcf InpaintingMcf inpainting_mcf InpaintingMcf InpaintingMcf , it can also be used for image
inpainting. The discrete diffusion equation is solved in
Iterations Iterations Iterations Iterations Iterations iterations time steps of length Theta Theta Theta Theta Theta theta , so that the
output image InpaintedImage InpaintedImage InpaintedImage InpaintedImage InpaintedImage inpaintedImage contains the gray value
function at the time Iterations Iterations Iterations Iterations Iterations iterations * Theta Theta Theta Theta Theta theta
.
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 Sigma Sigma Sigma Sigma 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 isotropic_diffusion IsotropicDiffusion isotropic_diffusion IsotropicDiffusion IsotropicDiffusion for
isotropic image smoothing.
Similar to the operator inpainting_mcf inpainting_mcf InpaintingMcf inpainting_mcf InpaintingMcf InpaintingMcf , the structure of the
image data in Region Region Region Region Region region is simplified by smoothing the level
lines of Image Image Image Image Image 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
in the case of the operator inpainting_mcf inpainting_mcf InpaintingMcf inpainting_mcf InpaintingMcf InpaintingMcf , where I
denotes the unit matrix,
is again smoothed
componentwise by a Gaussian filter of standard deviation
Rho Rho Rho Rho Rho rho for coherence_enhancing_diff coherence_enhancing_diff CoherenceEnhancingDiff coherence_enhancing_diff CoherenceEnhancingDiff CoherenceEnhancingDiff . Then, the final
coefficient matrix
is constructed from the eigenvalues
and eigenvectors
of the resulting intermediate matrix,
where the functions
were determined empirically and taken from the publication of
Weickert.
Hence, the diffusion direction in mean_curvature_flow mean_curvature_flow MeanCurvatureFlow mean_curvature_flow MeanCurvatureFlow MeanCurvatureFlow 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 Rho Rho Rho Rho rho and the magnitude of the
diffusion in coherence_enhancing_diff coherence_enhancing_diff CoherenceEnhancingDiff coherence_enhancing_diff CoherenceEnhancingDiff CoherenceEnhancingDiff 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 Region Region Region Region region to compute the
convolution with the smoothing filter mask of scale Rho Rho Rho Rho Rho 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 Region Region Region Region region
is presumed and these values are used in the convolution. This means
that Region Region Region Region Region region must keep this much distance to the border of
the image matrix Image Image Image Image Image 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 Image Image Image Image image . If the ROI does not include the
entire region Region Region Region Region Region region , a band around the intersection of
Region Region Region Region Region 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 Region Region Region Region region with the harmonic interpolant, a
continuous function of minimal curvature, by applying the operator
harmonic_interpolation harmonic_interpolation HarmonicInterpolation harmonic_interpolation HarmonicInterpolation HarmonicInterpolation to Image Image Image Image Image image before calling
inpainting_ced inpainting_ced InpaintingCed inpainting_ced InpaintingCed InpaintingCed .
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
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 harmonic_interpolation HarmonicInterpolation harmonic_interpolation HarmonicInterpolation HarmonicInterpolation ,
inpainting_ct inpainting_ct InpaintingCt inpainting_ct InpaintingCt InpaintingCt ,
inpainting_aniso inpainting_aniso InpaintingAniso inpainting_aniso InpaintingAniso InpaintingAniso ,
inpainting_mcf inpainting_mcf InpaintingMcf inpainting_mcf InpaintingMcf InpaintingMcf ,
inpainting_texture inpainting_texture InpaintingTexture inpainting_texture InpaintingTexture InpaintingTexture
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