KlassenKlassenKlassenKlassen | | | | Operatoren

inpainting_mcfinpainting_mcfInpaintingMcfinpainting_mcfInpaintingMcfInpaintingMcf (Operator)

Name

inpainting_mcfinpainting_mcfInpaintingMcfinpainting_mcfInpaintingMcfInpaintingMcf — Inpainting eines Bildbereiches durch Glättung der Höhenlinien.

Signatur

inpainting_mcf(Image, Region : InpaintedImage : Sigma, Theta, Iterations : )

Herror inpainting_mcf(const Hobject Image, const Hobject Region, Hobject* InpaintedImage, double Sigma, double Theta, const Hlong Iterations)

Herror T_inpainting_mcf(const Hobject Image, const Hobject Region, Hobject* InpaintedImage, const Htuple Sigma, const Htuple Theta, const Htuple Iterations)

Herror inpainting_mcf(Hobject Image, Hobject Region, Hobject* InpaintedImage, const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations)

HImage HImage::InpaintingMcf(const HRegion& Region, const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations) const

HImageArray HImageArray::InpaintingMcf(const HRegion& Region, const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations) const

void InpaintingMcf(const HObject& Image, const HObject& Region, HObject* InpaintedImage, const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations)

HImage HImage::InpaintingMcf(const HRegion& Region, double Sigma, double Theta, Hlong Iterations) const

void HOperatorSetX.InpaintingMcf(
[in] IHUntypedObjectX* Image, [in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*InpaintedImage, [in] VARIANT Sigma, [in] VARIANT Theta, [in] VARIANT Iterations)

IHImageX* HImageX.InpaintingMcf(
[in] IHRegionX* Region, [in] double Sigma, [in] double Theta, [in] Hlong Iterations)

static void HOperatorSet.InpaintingMcf(HObject image, HObject region, out HObject inpaintedImage, HTuple sigma, HTuple theta, HTuple iterations)

HImage HImage.InpaintingMcf(HRegion region, double sigma, double theta, int iterations)

Beschreibung

Der Operator inpainting_mcfinpainting_mcfInpaintingMcfinpainting_mcfInpaintingMcfInpaintingMcf setzt die an die Bildregion RegionRegionRegionRegionRegionregion des Eingabebildes ImageImageImageImageImageimage angrenzenden Bildkanten in RegionRegionRegionRegionRegionregion hinein fort und verbindet sie durch Glättung der Niveaulinien der Grauwertfunktion von ImageImageImageImageImageimage miteinander.

Dies geschieht durch Anwendung der Krümmungsfluss- oder intrinsischen Wärmeleitungsgleichung

auf die durch das Eingabebild ImageImageImageImageImageimage zu einem Zeitpunkt definierte Grauwertfunktion u in der Region RegionRegionRegionRegionRegionregion. Die diskretisierte Gleichung wird in IterationsIterationsIterationsIterationsIterationsiterations Zeitschritten der Länge ThetaThetaThetaThetaThetatheta gelöst, so dass das Ausgabebild InpaintedImageInpaintedImageInpaintedImageInpaintedImageInpaintedImageinpaintedImage die Grauwertfunktion zur Zeit enthält.

Ein stationärer Zustand der Krümmungsflussgleichung, die auch die Grundlage des Operators mean_curvature_flowmean_curvature_flowMeanCurvatureFlowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow bildet, zeichnet sich dadurch aus, dass alle Niveaulinien von u die Krümmung 0 besitzen. Dies bedeutet, dass nach hinreichend vielen Iterationsschritten im Rechengebiet des Ergebnisbildes InpaintedImageInpaintedImageInpaintedImageInpaintedImageInpaintedImageinpaintedImage nur noch gerade Kanten enthalten sind. Dadurch kann die Struktur der Objekte innerhalb von RegionRegionRegionRegionRegionregion vereinfacht werden, wobei die verbleibenden Kanten stetig an die Kanten der umgebenden Bildmatrix anschließen. So wird eine Entfernung von Fehlstellen oder Störobjekten im Eingabebild, ein sogenanntes Inpainting, erreicht, ohne dass dies für einen menschlichen Beobachter deutlich in Erscheinung tritt, da keine auffälligen Artefakte oder Schmiereffekte zurückbleiben.

Um die Kantenrichtungen insbesondere bei verrauschten Eingabedaten stabiler zu bestimmen, kann der Berechnung der Grauwertgradienten ein zusätzlicher isotroper Glättungsschritt vorgeschaltet werden. Der Parameter SigmaSigmaSigmaSigmaSigmasigma bestimmt die Stärke dieser Glättung als Standardabweichung des zugehörigen Gauß-Faltungskernes, wie er auch im Operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion zur isotropen Glättung eines Bildes verwendet wird.

Parallelisierung

Parameter

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

Eingabebild.

RegionRegionRegionRegionRegionregion (input_object)  region objectHRegionHRegionHRegionHRegionXHobject

Inpaintingregion.

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

Ausgabebild.

SigmaSigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Glättungsparameter für Ableitungsoperator.

Defaultwert: 0.5

Wertevorschläge: 0.0, 0.1, 0.5, 1.0

Restriktion: Sigma >= 0

ThetaThetaThetaThetaThetatheta (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeitschritt.

Defaultwert: 0.5

Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5

Restriktion: 0 < Theta <= 0.5

IterationsIterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Anzahl Iterationen.

Defaultwert: 10

Wertevorschläge: 1, 5, 10, 20, 50, 100, 500

Restriktion: Iterations >= 1

Alternativen

harmonic_interpolationharmonic_interpolationHarmonicInterpolationharmonic_interpolationHarmonicInterpolationHarmonicInterpolation, inpainting_ctinpainting_ctInpaintingCtinpainting_ctInpaintingCtInpaintingCt, inpainting_anisoinpainting_anisoInpaintingAnisoinpainting_anisoInpaintingAnisoInpaintingAniso, inpainting_cedinpainting_cedInpaintingCedinpainting_cedInpaintingCedInpaintingCed, inpainting_textureinpainting_textureInpaintingTextureinpainting_textureInpaintingTextureInpaintingTexture

Literatur

M. G. Crandall, P. Lions; „Convergent Difference Schemes for Nonlinear Parabolic Equations and Mean Curvature Motion“; Numer. Math. 75 pp. 17-41; 1996.
G. Aubert, P. Kornprobst; „Mathematical Problems in Image Processing“; Applied Mathematical Sciences 147; Springer, New York; 2002.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren