ClassesClassesClassesClasses | | | | Operators

harmonic_interpolationharmonic_interpolationHarmonicInterpolationharmonic_interpolationHarmonicInterpolationHarmonicInterpolation (Operator)

Name

harmonic_interpolationharmonic_interpolationHarmonicInterpolationharmonic_interpolationHarmonicInterpolationHarmonicInterpolation — Perform a harmonic interpolation on an image region.

Signature

harmonic_interpolation(Image, Region : InpaintedImage : Precision : )

Herror harmonic_interpolation(const Hobject Image, const Hobject Region, Hobject* InpaintedImage, double Precision)

Herror T_harmonic_interpolation(const Hobject Image, const Hobject Region, Hobject* InpaintedImage, const Htuple Precision)

Herror harmonic_interpolation(Hobject Image, Hobject Region, Hobject* InpaintedImage, const HTuple& Precision)

HImage HImage::HarmonicInterpolation(const HRegion& Region, const HTuple& Precision) const

HImageArray HImageArray::HarmonicInterpolation(const HRegion& Region, const HTuple& Precision) const

void HarmonicInterpolation(const HObject& Image, const HObject& Region, HObject* InpaintedImage, const HTuple& Precision)

HImage HImage::HarmonicInterpolation(const HRegion& Region, double Precision) const

void HOperatorSetX.HarmonicInterpolation(
[in] IHUntypedObjectX* Image, [in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*InpaintedImage, [in] VARIANT Precision)

IHImageX* HImageX.HarmonicInterpolation(
[in] IHRegionX* Region, [in] double Precision)

static void HOperatorSet.HarmonicInterpolation(HObject image, HObject region, out HObject inpaintedImage, HTuple precision)

HImage HImage.HarmonicInterpolation(HRegion region, double precision)

Description

The operator harmonic_interpolationharmonic_interpolationHarmonicInterpolationharmonic_interpolationHarmonicInterpolationHarmonicInterpolation reconstructs the destroyed image data of ImageImageImageImageImageimage inside the region RegionRegionRegionRegionRegionregion by solving the discrete Laplace equation u_xx+u_yy=0 for the corresponding gray value function u. The unique solution, which exists under Dirichlet boundary conditions given by ImageImageImageImageImageimage outside of RegionRegionRegionRegionRegionregion, is returned in InpaintedImageInpaintedImageInpaintedImageInpaintedImageInpaintedImageinpaintedImage.

This technique is called harmonic interpolation since in function theory the solutions of the Laplace equation are referred to as harmonic functions.

If RegionRegionRegionRegionRegionregion touches the border of the gray value matrix of ImageImageImageImageImageimage and thus some Dirichlet boundary values do not exist, von Neumann boundary conditions are used instead. This means that the gray values are mirrored at the border of ImageImageImageImageImageimage. If no Dirichlet boundary values exist at all, a constant image with gray value 0 is returned.

The spatial derivatives are discretized as u_xx(x,y)=u(x-1,y)-2u(x,y)+u(x+1,y) and u_yy(x,y)=u(x,y-1)-2u(x,y)+u(x,y+1) . The equation is solved by an iterative conjugate gradient solver, which iteratively improves the computational error until the maximum norm of its update step becomes a smaller fraction than PrecisionPrecisionPrecisionPrecisionPrecisionprecision of the norm of the input data or a maximum of 1000 iterations is reached. PrecisionPrecisionPrecisionPrecisionPrecisionprecision = 0.01 thus means a relative computational accuracy of 1%.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Input image.

RegionRegionRegionRegionRegionregion (input_object)  region objectHRegionHRegionHRegionHRegionXHobject

Inpainting region.

InpaintedImageInpaintedImageInpaintedImageInpaintedImageInpaintedImageinpaintedImage (output_object)  image(-array) objectHImageHImageHImageHImageXHobject * (byte / uint2 / real)

Output image.

PrecisionPrecisionPrecisionPrecisionPrecisionprecision (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Computational accuracy.

Default value: 0.001

Suggested values: 0.0, 0.0001, 0.001, 0.01

Restriction: Precision >= 0.0

Alternatives

inpainting_ctinpainting_ctInpaintingCtinpainting_ctInpaintingCtInpaintingCt, inpainting_anisoinpainting_anisoInpaintingAnisoinpainting_anisoInpaintingAnisoInpaintingAniso, inpainting_mcfinpainting_mcfInpaintingMcfinpainting_mcfInpaintingMcfInpaintingMcf, inpainting_textureinpainting_textureInpaintingTextureinpainting_textureInpaintingTextureInpaintingTexture, inpainting_cedinpainting_cedInpaintingCedinpainting_cedInpaintingCedInpaintingCed

References

L.C. Evans; “Partial Differential Equations”; AMS, Providence; 1998.
W. Hackbusch; “Iterative Lösung großer schwachbesetzter Gleichungssysteme”; Teubner, Stuttgart;1991.

Module

Foundation


ClassesClassesClassesClasses | | | | Operators