KlassenKlassenKlassenKlassen | | | | Operatoren

isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion (Operator)

Name

isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion — Isotrope Glättung eines Bildes.

Signatur

isotropic_diffusion(Image : SmoothedImage : Sigma, Iterations : )

Herror isotropic_diffusion(const Hobject Image, Hobject* SmoothedImage, double Sigma, const Hlong Iterations)

Herror T_isotropic_diffusion(const Hobject Image, Hobject* SmoothedImage, const Htuple Sigma, const Htuple Iterations)

Herror isotropic_diffusion(Hobject Image, Hobject* SmoothedImage, const HTuple& Sigma, const HTuple& Iterations)

HImage HImage::IsotropicDiffusion(const HTuple& Sigma, const HTuple& Iterations) const

HImageArray HImageArray::IsotropicDiffusion(const HTuple& Sigma, const HTuple& Iterations) const

void IsotropicDiffusion(const HObject& Image, HObject* SmoothedImage, const HTuple& Sigma, const HTuple& Iterations)

HImage HImage::IsotropicDiffusion(double Sigma, Hlong Iterations) const

void HOperatorSetX.IsotropicDiffusion(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*SmoothedImage, [in] VARIANT Sigma, [in] VARIANT Iterations)

IHImageX* HImageX.IsotropicDiffusion(
[in] double Sigma, [in] Hlong Iterations)

static void HOperatorSet.IsotropicDiffusion(HObject image, out HObject smoothedImage, HTuple sigma, HTuple iterations)

HImage HImage.IsotropicDiffusion(double sigma, int iterations)

Beschreibung

Der Operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion führt eine isotrope Diffusion des Eingabebildes ImageImageImageImageImageimage durch. Dies entspricht einer Faltung der Bildmatrix mit einer Gaussmaske mit Standardabweichung SigmaSigmaSigmaSigmaSigmasigma. Wird der Parameter IterationsIterationsIterationsIterationsIterationsiterations auf 0 gesetzt, so wird eine solche Faltung explizit durchgeführt. Für Eingabebilder mit voller ROI entspricht isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion dann genau dem Operator derivate_gaussderivate_gaussDerivateGaussderivate_gaussDerivateGaussDerivateGauss bei Wahl von 'none'"none""none""none""none""none" für den Parameter Component. Ist die Grauwertmatrix größer als die ROI von ImageImageImageImageImageimage, so unterscheiden sich die Operatoren dadurch, dass derivate_gaussderivate_gaussDerivateGaussderivate_gaussDerivateGaussDerivateGauss die Grauwerte außerhalb der ROI miteinbezieht, während isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion in jedem Fall die Grauwerte am Rand der ROI spiegelt. Der Rechenaufwand steigt linear mit dem Wert von SigmaSigmaSigmaSigmaSigmasigma an.

Besitzt IterationsIterationsIterationsIterationsIterationsiterations einen positiven Wert, so wird der Glättungsvorgang als Anwendung der Wärmeleitungsgleichung

auf die Grauwertfunktion u mit dem durch die Grauwerte von ImageImageImageImageImageimage definierten Anfangswert zu einem Zeitpunkt interpretiert. Diese Gleichung wird dann in IterationsIterationsIterationsIterationsIterationsiterations Schritten über ein iteratives Verfahren für parabolische partielle Differentialgleichungen bis zum Zeitpunkt gelöst, was äquivalent zur obigen Faltung ist. Der Rechenaufwand ist hier proportional zum Wert von IterationsIterationsIterationsIterationsIterationsiterations und unabhängig von SigmaSigmaSigmaSigmaSigmasigma. Für kleine Werte von IterationsIterationsIterationsIterationsIterationsiterations ist die Rechengenauigkeit aber sehr gering. Die Wahl von IterationsIterationsIterationsIterationsIterationsiterations < 3 ist daher nicht empfehlenswert.

Für kleinere Werte von SigmaSigmaSigmaSigmaSigmasigma ist die Faltungsimplementierung im Normalfall die schnellere Variante. Da die Laufzeit des Differentialgleichungslösers nur von der Anzahl der Iterationen und nicht von SigmaSigmaSigmaSigmaSigmasigma abhängt, ist für größe Werte von SigmaSigmaSigmaSigmaSigmasigma und der Wahl von wenigen Iterationen (z.B. IterationsIterationsIterationsIterationsIterationsiterations = 3) typischerweise diese Implementierung schneller.

Achtung

Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.

Parallelisierung

Parameter

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

Eingabebild.

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

Ausgabebild.

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

Standardabweichung der Gaussverteilung.

Defaultwert: 1.0

Wertevorschläge: 0.1, 0.5, 1.0, 3.0, 10.0, 20.0, 50.0

Restriktion: Sigma > 0

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

Anzahl Iterationen.

Defaultwert: 10

Wertevorschläge: 0, 3, 10, 100, 500

Restriktion: Iterations >= 0

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren