KlassenKlassenKlassenKlassen | | | | Operatoren

diff_of_gaussdiff_of_gaussDiffOfGaussdiff_of_gaussDiffOfGaussDiffOfGauss (Operator)

Name

diff_of_gaussdiff_of_gaussDiffOfGaussdiff_of_gaussDiffOfGaussDiffOfGauss — Näherung für den LoG-Operator (Laplace of Gaussian).

Signatur

diff_of_gauss(Image : DiffOfGauss : Sigma, SigFactor : )

Herror diff_of_gauss(const Hobject Image, Hobject* DiffOfGauss, double Sigma, double SigFactor)

Herror T_diff_of_gauss(const Hobject Image, Hobject* DiffOfGauss, const Htuple Sigma, const Htuple SigFactor)

Herror diff_of_gauss(Hobject Image, Hobject* DiffOfGauss, const HTuple& Sigma, const HTuple& SigFactor)

HImage HImage::DiffOfGauss(const HTuple& Sigma, const HTuple& SigFactor) const

HImageArray HImageArray::DiffOfGauss(const HTuple& Sigma, const HTuple& SigFactor) const

void DiffOfGauss(const HObject& Image, HObject* DiffOfGauss, const HTuple& Sigma, const HTuple& SigFactor)

HImage HImage::DiffOfGauss(double Sigma, double SigFactor) const

void HOperatorSetX.DiffOfGauss(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*DiffOfGauss, [in] VARIANT Sigma, [in] VARIANT SigFactor)

IHImageX* HImageX.DiffOfGauss(
[in] double Sigma, [in] double SigFactor)

static void HOperatorSet.DiffOfGauss(HObject image, out HObject diffOfGauss, HTuple sigma, HTuple sigFactor)

HImage HImage.DiffOfGauss(double sigma, double sigFactor)

Beschreibung

diff_of_gaussdiff_of_gaussDiffOfGaussdiff_of_gaussDiffOfGaussDiffOfGauss ist eine Näherung für den Laplace-Operator. Dieser wird hier als Differenz zweier Gaußfunktionen approximiert. Die Standardabweichungen dieser Gaußfunktionen ergeben sich nach Marr aus dem Parameter SigmaSigmaSigmaSigmaSigmasigma des Laplace-Operators und dem Verhältnis der beiden Standardabweichungen zueinander (SigFactorSigFactorSigFactorSigFactorSigFactorsigFactor):

Für SigFactor = 1.6 ergibt sich nach Marr eine Näherung an den Mexican-Hat-Operator (LoG, Laplace of Gaussian). Das Ergebnisbild wird in DiffOfGaussDiffOfGaussDiffOfGaussDiffOfGaussDiffOfGaussdiffOfGauss abgelegt.

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)

Eingabebilder

DiffOfGaussDiffOfGaussDiffOfGaussDiffOfGaussDiffOfGaussdiffOfGauss (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (int2)

Gefilterte Ausgabebilder.

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

Glättungsparameter des (zu approximierenden) Laplace-Operators.

Defaultwert: 3.0

Wertevorschläge: 2.0, 3.0, 4.0, 5.0

Typischer Wertebereich: 0.2 ≤ Sigma Sigma Sigma Sigma Sigma sigma ≤ 50.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Sigma > 0.0

SigFactorSigFactorSigFactorSigFactorSigFactorsigFactor (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Verhältnis der Standardabweichungen der eingesetzten Gaußfunktionen (Marr empfiehlt 1.6).

Defaultwert: 1.6

Typischer Wertebereich: 0.1 ≤ SigFactor SigFactor SigFactor SigFactor SigFactor sigFactor ≤ 10.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: SigFactor > 0.0

Beispiel (HDevelop)

read_image(Image,'fabrik')
diff_of_gauss(Image,Laplace,2.0,1.6)
zero_crossing(Laplace,ZeroCrossings)

Beispiel (C)

read_image(&Image,"mreut");
diff_of_gauss(Image,&Laplace,2.0,1.6);
zero_crossing(Laplace,&ZeroCrossings);

Beispiel (HDevelop)

read_image(Image,'fabrik')
diff_of_gauss(Image,Laplace,2.0,1.6)
zero_crossing(Laplace,ZeroCrossings)

Beispiel (HDevelop)

read_image(Image,'fabrik')
diff_of_gauss(Image,Laplace,2.0,1.6)
zero_crossing(Laplace,ZeroCrossings)

Beispiel (HDevelop)

read_image(Image,'fabrik')
diff_of_gauss(Image,Laplace,2.0,1.6)
zero_crossing(Laplace,ZeroCrossings)

Beispiel (HDevelop)

read_image(Image,'fabrik')
diff_of_gauss(Image,Laplace,2.0,1.6)
zero_crossing(Laplace,ZeroCrossings)

Komplexität

Die Komplexität hängt linear von der Anzahl der Bildpunkte und der Größe von Sigma ab.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert diff_of_gaussdiff_of_gaussDiffOfGaussdiff_of_gaussDiffOfGaussDiffOfGauss den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

zero_crossingzero_crossingZeroCrossingzero_crossingZeroCrossingZeroCrossing, dual_thresholddual_thresholdDualThresholddual_thresholdDualThresholdDualThreshold

Alternativen

laplacelaplaceLaplacelaplaceLaplaceLaplace, derivate_gaussderivate_gaussDerivateGaussderivate_gaussDerivateGaussDerivateGauss

Literatur

D. Marr: „Vision (A computational investigation into human representation and processing of visual information)“; New York, W.H. Freeman and Company; 1982.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren