KlassenKlassenKlassenKlassen | | | | Operatoren

points_foerstnerT_points_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner (Operator)

Name

points_foerstnerT_points_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner — Suche nach signifikanten Punkten mittels des Förstner-Operators.

Signatur

points_foerstner(Image : : SigmaGrad, SigmaInt, SigmaPoints, ThreshInhom, ThreshShape, Smoothing, EliminateDoublets : RowJunctions, ColumnJunctions, CoRRJunctions, CoRCJunctions, CoCCJunctions, RowArea, ColumnArea, CoRRArea, CoRCArea, CoCCArea)

Herror T_points_foerstner(const Hobject Image, const Htuple SigmaGrad, const Htuple SigmaInt, const Htuple SigmaPoints, const Htuple ThreshInhom, const Htuple ThreshShape, const Htuple Smoothing, const Htuple EliminateDoublets, Htuple* RowJunctions, Htuple* ColumnJunctions, Htuple* CoRRJunctions, Htuple* CoRCJunctions, Htuple* CoCCJunctions, Htuple* RowArea, Htuple* ColumnArea, Htuple* CoRRArea, Htuple* CoRCArea, Htuple* CoCCArea)

Herror points_foerstner(Hobject Image, const HTuple& SigmaGrad, const HTuple& SigmaInt, const HTuple& SigmaPoints, const HTuple& ThreshInhom, const HTuple& ThreshShape, const HTuple& Smoothing, const HTuple& EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea)

HTuple HImage::PointsFoerstner(const HTuple& SigmaGrad, const HTuple& SigmaInt, const HTuple& SigmaPoints, const HTuple& ThreshInhom, const HTuple& ThreshShape, const HTuple& Smoothing, const HTuple& EliminateDoublets, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const

void PointsFoerstner(const HObject& Image, const HTuple& SigmaGrad, const HTuple& SigmaInt, const HTuple& SigmaPoints, const HTuple& ThreshInhom, const HTuple& ThreshShape, const HTuple& Smoothing, const HTuple& EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea)

void HImage::PointsFoerstner(const HTuple& SigmaGrad, const HTuple& SigmaInt, const HTuple& SigmaPoints, const HTuple& ThreshInhom, double ThreshShape, const HString& Smoothing, const HString& EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const

void HImage::PointsFoerstner(double SigmaGrad, double SigmaInt, double SigmaPoints, double ThreshInhom, double ThreshShape, const HString& Smoothing, const HString& EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const

void HImage::PointsFoerstner(double SigmaGrad, double SigmaInt, double SigmaPoints, double ThreshInhom, double ThreshShape, const char* Smoothing, const char* EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const

void HOperatorSetX.PointsFoerstner(
[in] IHUntypedObjectX* Image, [in] VARIANT SigmaGrad, [in] VARIANT SigmaInt, [in] VARIANT SigmaPoints, [in] VARIANT ThreshInhom, [in] VARIANT ThreshShape, [in] VARIANT Smoothing, [in] VARIANT EliminateDoublets, [out] VARIANT* RowJunctions, [out] VARIANT* ColumnJunctions, [out] VARIANT* CoRRJunctions, [out] VARIANT* CoRCJunctions, [out] VARIANT* CoCCJunctions, [out] VARIANT* RowArea, [out] VARIANT* ColumnArea, [out] VARIANT* CoRRArea, [out] VARIANT* CoRCArea, [out] VARIANT* CoCCArea)

VARIANT HImageX.PointsFoerstner(
[in] VARIANT SigmaGrad, [in] VARIANT SigmaInt, [in] VARIANT SigmaPoints, [in] VARIANT ThreshInhom, [in] double ThreshShape, [in] BSTR Smoothing, [in] BSTR EliminateDoublets, [out] VARIANT* ColumnJunctions, [out] VARIANT* CoRRJunctions, [out] VARIANT* CoRCJunctions, [out] VARIANT* CoCCJunctions, [out] VARIANT* RowArea, [out] VARIANT* ColumnArea, [out] VARIANT* CoRRArea, [out] VARIANT* CoRCArea, [out] VARIANT* CoCCArea)

static void HOperatorSet.PointsFoerstner(HObject image, HTuple sigmaGrad, HTuple sigmaInt, HTuple sigmaPoints, HTuple threshInhom, HTuple threshShape, HTuple smoothing, HTuple eliminateDoublets, out HTuple rowJunctions, out HTuple columnJunctions, out HTuple coRRJunctions, out HTuple coRCJunctions, out HTuple coCCJunctions, out HTuple rowArea, out HTuple columnArea, out HTuple coRRArea, out HTuple coRCArea, out HTuple coCCArea)

void HImage.PointsFoerstner(HTuple sigmaGrad, HTuple sigmaInt, HTuple sigmaPoints, HTuple threshInhom, double threshShape, string smoothing, string eliminateDoublets, out HTuple rowJunctions, out HTuple columnJunctions, out HTuple coRRJunctions, out HTuple coRCJunctions, out HTuple coCCJunctions, out HTuple rowArea, out HTuple columnArea, out HTuple coRRArea, out HTuple coRCArea, out HTuple coCCArea)

void HImage.PointsFoerstner(double sigmaGrad, double sigmaInt, double sigmaPoints, double threshInhom, double threshShape, string smoothing, string eliminateDoublets, out HTuple rowJunctions, out HTuple columnJunctions, out HTuple coRRJunctions, out HTuple coRCJunctions, out HTuple coCCJunctions, out HTuple rowArea, out HTuple columnArea, out HTuple coRRArea, out HTuple coRCArea, out HTuple coCCArea)

Beschreibung

points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner extrahiert signifikante Punkte aus einem Bild. Signifikante Punkte sind Punkte im Bild, die sich von ihrer Umgebung unterscheiden, also Punkte, an denen sich das Bildsignal zweidimensional ändert. Diese Änderung tritt zum einen an den Schnittpunkte von Grauwertkanten auf (sogenannte Kreuzungspunkte), zum anderen an Stellen, deren Farbe oder Helligkeit sich von ihrer Umgebung unterscheidet (sogenannte Flächenpunkte).

Die Punkextraktion erfolgt in zwei Stufen: Im ersten Schritt werden die Punktregionen, also inhomogene Regionen mit hoher Isotropie, aus dem Eingabebild extrahiert. Dazu wird die geglättete Matrix

berechnet, wobei und für die ersten Ableitungen der einzelnen Bildkanäle und S für eine Glättung stehen. Wird SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing auf 'gauss'"gauss""gauss""gauss""gauss""gauss" gesetzt, dann werden die Ableitungen mit einem Gaußfilter der Größe SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad berechnet und die Glättung erfolgt durch einen Gaußfilter der Größe SigmaIntSigmaIntSigmaIntSigmaIntSigmaIntsigmaInt. Wird SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing auf 'mean'"mean""mean""mean""mean""mean" gesetzt, werden die Ableitungen mit einem 3 x 3 Sobelfilter berechnet (SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad wird ignoriert) und die Glättung erfolgt durch einen SigmaIntSigmaIntSigmaIntSigmaIntSigmaIntsigmaInt x SigmaIntSigmaIntSigmaIntSigmaIntSigmaIntsigmaInt Mittelwertfilter. Dabei ist
Inhomogenität = Spur(M)
das Maß für die Inhomogenität im Bild und
das Maß der Isotropie der Textur im Bild. Bildpunkte, deren Inhomogenität größer oder gleich ThreshInhomThreshInhomThreshInhomThreshInhomThreshInhomthreshInhom und deren Isotropie gleichzeitig größer oder gleich ThreshShapeThreshShapeThreshShapeThreshShapeThreshShapethreshShape ist, werden im Anschluss weiter untersucht.

Im zweiten Schritt werden für diese Punkte zwei Optimierungsfunktionen berechnet. Diese Optimierungsfunktionen geben im Wesentlichen für jeden Bildpunkt die durchschnittlichen Abstände zu den Kanten- (Kreuzungspunkte) bzw. Gradientenrichtungen (Flächenpunkte) innerhalb eines Beobachtungsfensters um den Punkt wieder. Für SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing = 'gauss'"gauss""gauss""gauss""gauss""gauss" erfolgt die Durchschnittsbildung mit einem Gaußfilter der Größe SigmaPointsSigmaPointsSigmaPointsSigmaPointsSigmaPointssigmaPoints. Für SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing = 'mean'"mean""mean""mean""mean""mean" erfolgt die Durchschnittsbildung mit einem SigmaPointsSigmaPointsSigmaPointsSigmaPointsSigmaPointssigmaPoints x SigmaPointsSigmaPointsSigmaPointsSigmaPointsSigmaPointssigmaPoints Mittelwertfilter. Die lokalen Minima der Optimierungsfunktionen ergeben die signifikanten Punkte. Ihre Position wird subpixelgenau in (RowJunctionsRowJunctionsRowJunctionsRowJunctionsRowJunctionsrowJunctions, ColumnJunctionsColumnJunctionsColumnJunctionsColumnJunctionsColumnJunctionscolumnJunctions) und (RowAreaRowAreaRowAreaRowAreaRowArearowArea, ColumnAreaColumnAreaColumnAreaColumnAreaColumnAreacolumnArea) zurückgegeben.

Neben der Position werden für jeden gefundenen Punkt auch die Elemente CoRRJunctionsCoRRJunctionsCoRRJunctionsCoRRJunctionsCoRRJunctionscoRRJunctions, CoRCJunctionsCoRCJunctionsCoRCJunctionsCoRCJunctionsCoRCJunctionscoRCJunctions und CoCCJunctionsCoCCJunctionsCoCCJunctionsCoCCJunctionsCoCCJunctionscoCCJunctions (bzw. CoRRAreaCoRRAreaCoRRAreaCoRRAreaCoRRAreacoRRArea, CoRCAreaCoRCAreaCoRCAreaCoRCAreaCoRCAreacoRCArea und CoCCAreaCoCCAreaCoCCAreaCoCCAreaCoCCAreacoCCArea) seiner Kovarianzmatrix zurückgegeben. Diese erlaubt Rückschlüsse auf die Genauigkeit der gefundenen Punktposition. Um die tatsächlichen Werte zu erhalten, ist es notwendig, im Eingabebild die Stärke des Rauschens zu ermitteln und anschließend alle Komponenten der Kovarianzmatrix mit der Varianz des Rauschens zu multiplizieren. (Die Stärke des Rauschens ermittelt man z.B., indem man auf Bildbereiche mit konstantem Grauwert intensityintensityIntensityintensityIntensityIntensity oder auf Bildbereiche mit einem rampenförmigen Grauwertverlauf plane_deviationplane_deviationPlaneDeviationplane_deviationPlaneDeviationPlaneDeviation anwendet. In beiden Fällen wird die Stärke des Rauschens im Parameter Deviation zurückgegeben.) Das Beispielprogram

%HALCONEXAMPLES%\hdevelop\Filter\Points\points_foerstner_ellipses.hdev
illustriert diesen Sachverhalt.

Es liegt in der Natur dieses Operators, dass an Ecken häufig zwei separate Punkte erkannt werden: Ein Kreuzungspunkt im Schnittpunkt der Kanten der Ecke und ein Flächenpunkt etwas weiter im Inneren der Ecke. Solche Doubletten werden automatisch eliminiert, wenn man EliminateDoubletsEliminateDoubletsEliminateDoubletsEliminateDoubletsEliminateDoubletseliminateDoublets auf 'true'"true""true""true""true""true" setzt. Dazu werden alle möglichen Paare von jeweils einem Kreuzungs- und Flächenpunkt untersucht. Liegen die Punkte innerhalb des Beobachtungsfensters der Optimierungsfunktion des jeweiligen anderen Punktes, dann wird für beide Punkte die Genauigkeit ihrer Position berechnet und der Punkt mit der geringeren Genauigkeit verworfen. Ist EliminateDoubletsEliminateDoubletsEliminateDoubletsEliminateDoubletsEliminateDoubletseliminateDoublets 'false'"false""false""false""false""false", so werden alle gefundenen Punkte zurückgegeben.

Achtung

Es ist zu beachten, dass für SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing = 'mean'"mean""mean""mean""mean""mean", nur ungerade Werte für SigmaIntSigmaIntSigmaIntSigmaIntSigmaIntsigmaInt und SigmaPointsSigmaPointsSigmaPointsSigmaPointsSigmaPointssigmaPoints zulässig sind. Gerade Werte werden automatisch durch den nächstgrößeren ungeraden Wert ersetzt.

points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner mit SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing = 'gauss'"gauss""gauss""gauss""gauss""gauss" wird durch SSE2 Instruktionen beschleunigt, falls der Systemparameter 'sse2_enable'"sse2_enable""sse2_enable""sse2_enable""sse2_enable""sse2_enable" auf 'true'"true""true""true""true""true" gesetzt ist (dies ist Standard, sofern SSE2 auf Ihrem Rechner verfügbar ist). Diese Implementierung ist aufgrund numerischer Probleme im Vergleich zur reinen C Version etwas ungenauer (für 'byte' Bilder bewegt sich der Unterschied von RowJunctionsRowJunctionsRowJunctionsRowJunctionsRowJunctionsrowJunctions und ColumnJunctionsColumnJunctionsColumnJunctionsColumnJunctionsColumnJunctionscolumnJunctions in einer Größenordnung von 1.0e-5). Falls für Ihre Anwendung Genauigkeit wichtiger ist als Geschwindigkeit können Sie 'sse2_enable'"sse2_enable""sse2_enable""sse2_enable""sse2_enable""sse2_enable" auf 'false'"false""false""false""false""false" setzen, bevor Sie points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner aufrufen. Dadurch verwendet points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner keine SSE2 Beschleunigungen. Vergessen Sie nicht 'sse2_enable'"sse2_enable""sse2_enable""sse2_enable""sse2_enable""sse2_enable" danach wieder auf 'true'"true""true""true""true""true" zu setzen.

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 objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Eingabebild.

SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Stärke der Glättung zur Berechnung des Gradienten. Für SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing = 'mean' wird SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad ignoriert.

Defaultwert: 1.0

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

Typischer Wertebereich: 0.7 ≤ SigmaGrad SigmaGrad SigmaGrad SigmaGrad SigmaGrad sigmaGrad ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaGrad > 0.0

SigmaIntSigmaIntSigmaIntSigmaIntSigmaIntsigmaInt (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Stärke der Glättung zur Integration der Gradienten.

Defaultwert: 2.0

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

Typischer Wertebereich: 0.7 ≤ SigmaInt SigmaInt SigmaInt SigmaInt SigmaInt sigmaInt ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaInt > 0.0

SigmaPointsSigmaPointsSigmaPointsSigmaPointsSigmaPointssigmaPoints (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Stärke der Glättung in den Optimierungsfunktionen.

Defaultwert: 3.0

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

Typischer Wertebereich: 0.7 ≤ SigmaPoints SigmaPoints SigmaPoints SigmaPoints SigmaPoints sigmaPoints ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaPoints >= SigmaInt && SigmaPoints > 0.6

ThreshInhomThreshInhomThreshInhomThreshInhomThreshInhomthreshInhom (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Schwellwert zur Bestimmung inhomogener Bildbereiche.

Defaultwert: 200

Wertevorschläge: 50, 100, 200, 500, 1000

Restriktion: ThreshInhom >= 0.0

ThreshShapeThreshShapeThreshShapeThreshShapeThreshShapethreshShape (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Schwellwert zur Bestimmung der Punktregionen.

Defaultwert: 0.3

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

Typischer Wertebereich: 0.01 ≤ ThreshShape ThreshShape ThreshShape ThreshShape ThreshShape threshShape ≤ 1

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: 0.0 <= ThreshShape && ThreshShape <= 1.0

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

Verwendetes Glättungsverfahren.

Defaultwert: 'gauss' "gauss" "gauss" "gauss" "gauss" "gauss"

Werteliste: 'gauss'"gauss""gauss""gauss""gauss""gauss", 'mean'"mean""mean""mean""mean""mean"

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

Beseitigung mehrfach erkannter Punkte.

Defaultwert: 'false' "false" "false" "false" "false" "false"

Werteliste: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"

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

Zeilenkoordinaten der gefundenen Kreuzungspunkte.

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

Spaltenkoordinaten der gefundenen Kreuzungspunkte.

CoRRJunctionsCoRRJunctionsCoRRJunctionsCoRRJunctionsCoRRJunctionscoRRJunctions (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenanteil der Kovarianzmatrix der gefundenen Kreuzungspunkte.

CoRCJunctionsCoRCJunctionsCoRCJunctionsCoRCJunctionsCoRCJunctionscoRCJunctions (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Gemischter Anteil der Kovarianzmatrix der gefundenen Kreuzungspunkte.

CoCCJunctionsCoCCJunctionsCoCCJunctionsCoCCJunctionsCoCCJunctionscoCCJunctions (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenanteil der Kovarianzmatrix der gefundenen Kreuzungspunkte.

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

Zeilenkoordinaten der gefundenen Flächenpunkte.

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

Spaltenkoordinaten der gefundenen Flächenpunkte.

CoRRAreaCoRRAreaCoRRAreaCoRRAreaCoRRAreacoRRArea (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenanteil der Kovarianzmatrix der gefundenen Flächenpunkte.

CoRCAreaCoRCAreaCoRCAreaCoRCAreaCoRCAreacoRCArea (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Gemischter Anteil der Kovarianzmatrix der gefundenen Flächenpunkte.

CoCCAreaCoCCAreaCoCCAreaCoCCAreaCoCCAreacoCCArea (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenanteil der Kovarianzmatrix der gefundenen Flächenpunkte.

Ergebnis

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

points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris, points_lepetitpoints_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit, points_harris_binomialpoints_harris_binomialPointsHarrisBinomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomial

Literatur

W. Förstner, E. Gülch: „A Fast Operator for Detection and Precise Location of Distinct Points, Corners and Circular features“. In Proceedings of the Intercommission Conference on Fast Processing of Photogrametric Data, Interlaken, pp. 281-305, 1987.
W. Förstner: „Statistische Verfahren für die automatische Bildanalyse und ihre Bewertung bei der Objekterkennung und -vermessung“. Volume 370, Series C, Deutsche Geodätische Kommission, München, 1991.
W. Förstner: „A Framework for Low Level Feature Extraction“. European Conference on Computer Vision, LNCS 802, pp. 383-394, Springer Verlag, 1994.
C. Fuchs: „Extraktion polymorpher Bildstrukturen und ihre topologische und geometrische Gruppierung“. Volume 502, Series C, Deutsche Geodätische Kommission, München, 1998.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren