KlassenKlassenKlassenKlassen | | | | Operatoren

critical_points_sub_pixT_critical_points_sub_pixCriticalPointsSubPixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPix (Operator)

Name

critical_points_sub_pixT_critical_points_sub_pixCriticalPointsSubPixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPix — Subpixelgenaue Detektion von kritischen Punkten in einem Bild.

Signatur

critical_points_sub_pix(Image : : Filter, Sigma, Threshold : RowMin, ColumnMin, RowMax, ColumnMax, RowSaddle, ColumnSaddle)

Herror T_critical_points_sub_pix(const Hobject Image, const Htuple Filter, const Htuple Sigma, const Htuple Threshold, Htuple* RowMin, Htuple* ColumnMin, Htuple* RowMax, Htuple* ColumnMax, Htuple* RowSaddle, Htuple* ColumnSaddle)

Herror critical_points_sub_pix(Hobject Image, const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle)

HTuple HImage::CriticalPointsSubPix(const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const

void CriticalPointsSubPix(const HObject& Image, const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle)

void HImage::CriticalPointsSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const

void HImage::CriticalPointsSubPix(const char* Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const

void HOperatorSetX.CriticalPointsSubPix(
[in] IHUntypedObjectX* Image, [in] VARIANT Filter, [in] VARIANT Sigma, [in] VARIANT Threshold, [out] VARIANT* RowMin, [out] VARIANT* ColumnMin, [out] VARIANT* RowMax, [out] VARIANT* ColumnMax, [out] VARIANT* RowSaddle, [out] VARIANT* ColumnSaddle)

VARIANT HImageX.CriticalPointsSubPix(
[in] BSTR Filter, [in] double Sigma, [in] double Threshold, [out] VARIANT* ColumnMin, [out] VARIANT* RowMax, [out] VARIANT* ColumnMax, [out] VARIANT* RowSaddle, [out] VARIANT* ColumnSaddle)

static void HOperatorSet.CriticalPointsSubPix(HObject image, HTuple filter, HTuple sigma, HTuple threshold, out HTuple rowMin, out HTuple columnMin, out HTuple rowMax, out HTuple columnMax, out HTuple rowSaddle, out HTuple columnSaddle)

void HImage.CriticalPointsSubPix(string filter, double sigma, double threshold, out HTuple rowMin, out HTuple columnMin, out HTuple rowMax, out HTuple columnMax, out HTuple rowSaddle, out HTuple columnSaddle)

Beschreibung

critical_points_sub_pixcritical_points_sub_pixCriticalPointsSubPixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPix extrahiert subpixelgenau kritische Punkte, also lokale Maxima, lokale Minima und Sattelpunkte, aus dem Bild ImageImageImageImageImageimage. Zur Detektion der kritischen Punkte wird das Eingangsbild in jedem Punkt durch ein quadratisches Polynom in x und y approximiert und dieses auf Extremstellen und Sattelpunkte hin untersucht. Um das Polynom aufzustellen, werden die partiellen Ableitungen abhängig von FilterFilterFilterFilterFilterfilter entweder mit verschiedenen Ableitungen der Gaußfunktion oder nach dem Facet-Modell berechnet. Im ersten Fall bestimmt SigmaSigmaSigmaSigmaSigmasigma die Größe der verwendeten Gaußkerne, im zweiten Fall erfolgt vor der Berechnung der partiellen Ableitungen eine Glättung des Eingabebildes mit einem Gaußfilter der Größe SigmaSigmaSigmaSigmaSigmasigma. Der Modus 'facet'"facet""facet""facet""facet""facet" ist damit etwas schneller, liefert aber auch etwas ungenauere Resultate. Sind beide Eigenwerte der Hessematrix im untersuchten Punkt ihrem Betrage nach größer als ThresholdThresholdThresholdThresholdThresholdthreshold, dann liegt ein Extrem- oder Sattelpunkt vor. Die Eigenwerte entsprechen der Krümmung der Grauwertoberfläche. Sind beide Eigenwerte negativ, so liegt ein lokales Maximum vor, sind beide positiv, ein lokales Minimum; bei unterschiedlichen Vorzeichen liegt ein Sattelpunkt vor.

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)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / int1 / int2 / uint2 / int4 / real)

Eingabebild.

FilterFilterFilterFilterFilterfilter (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Verfahren zur Berechnung der partiellen Ableitungen.

Defaultwert: 'facet' "facet" "facet" "facet" "facet" "facet"

Werteliste: 'facet'"facet""facet""facet""facet""facet", 'gauss'"gauss""gauss""gauss""gauss""gauss"

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

Sigma der Gaußfunktion. Ist FilterFilterFilterFilterFilterfilter auf 'facet' gesetzt, kann SigmaSigmaSigmaSigmaSigmasigma auf 0.0 gesetzt werden, um eine Glättung des Eingangsbildes zu vermeiden.

Wertevorschläge: 0.7, 0.8, 0.9, 1.0, 1.2, 1.5, 2.0, 3.0

Restriktion: Sigma >= 0.0

ThresholdThresholdThresholdThresholdThresholdthreshold (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Mindestbetrag der Eigenwerte der Hessematrix.

Defaultwert: 5.0

Wertevorschläge: 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0

Restriktion: Threshold >= 0.0

RowMinRowMinRowMinRowMinRowMinrowMin (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinaten der gefundenen Minima.

ColumnMinColumnMinColumnMinColumnMinColumnMincolumnMin (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinaten der gefundenen Minima.

RowMaxRowMaxRowMaxRowMaxRowMaxrowMax (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinaten der gefundenen Maxima.

ColumnMaxColumnMaxColumnMaxColumnMaxColumnMaxcolumnMax (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinaten der gefundenen Maxima.

RowSaddleRowSaddleRowSaddleRowSaddleRowSaddlerowSaddle (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinaten der gefundenen Sattelpunkte.

ColumnSaddleColumnSaddleColumnSaddleColumnSaddleColumnSaddlecolumnSaddle (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinaten der gefundenen Sattelpunkte.

Ergebnis

Sind die Parameterwerte korrekt und tritt kein Fehler während der Berechnung auf, liefert critical_points_sub_pixcritical_points_sub_pixCriticalPointsSubPixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPix 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

gen_cross_contour_xldgen_cross_contour_xldGenCrossContourXldgen_cross_contour_xldGenCrossContourXldGenCrossContourXld, disp_crossdisp_crossDispCrossdisp_crossDispCrossDispCross

Alternativen

local_min_sub_pixlocal_min_sub_pixLocalMinSubPixlocal_min_sub_pixLocalMinSubPixLocalMinSubPix, local_max_sub_pixlocal_max_sub_pixLocalMaxSubPixlocal_max_sub_pixLocalMaxSubPixLocalMaxSubPix, saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPix

Siehe auch

local_minlocal_minLocalMinlocal_minLocalMinLocalMin, local_maxlocal_maxLocalMaxlocal_maxLocalMaxLocalMax, plateausplateausPlateausplateausPlateausPlateaus, plateaus_centerplateaus_centerPlateausCenterplateaus_centerPlateausCenterPlateausCenter, lowlandslowlandsLowlandslowlandsLowlandsLowlands, lowlands_centerlowlands_centerLowlandsCenterlowlands_centerLowlandsCenterLowlandsCenter

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren