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.

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