KlassenKlassenKlassenKlassen | | | | Operatoren

points_lepetitT_points_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit (Operator)

Name

points_lepetitT_points_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit — Suche nach signifikanten Punkten mittels des Lepetit-Operators.

Signatur

points_lepetit(Image : : Radius, CheckNeighbor, MinCheckNeighborDiff, MinScore, Subpix : Row, Column)

Herror T_points_lepetit(const Hobject Image, const Htuple Radius, const Htuple CheckNeighbor, const Htuple MinCheckNeighborDiff, const Htuple MinScore, const Htuple Subpix, Htuple* Row, Htuple* Column)

Herror points_lepetit(Hobject Image, const HTuple& Radius, const HTuple& CheckNeighbor, const HTuple& MinCheckNeighborDiff, const HTuple& MinScore, const HTuple& Subpix, HTuple* Row, HTuple* Column)

HTuple HImage::PointsLepetit(const HTuple& Radius, const HTuple& CheckNeighbor, const HTuple& MinCheckNeighborDiff, const HTuple& MinScore, const HTuple& Subpix, HTuple* Column) const

void PointsLepetit(const HObject& Image, const HTuple& Radius, const HTuple& CheckNeighbor, const HTuple& MinCheckNeighborDiff, const HTuple& MinScore, const HTuple& Subpix, HTuple* Row, HTuple* Column)

void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const HString& Subpix, HTuple* Row, HTuple* Column) const

void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const char* Subpix, HTuple* Row, HTuple* Column) const

void HOperatorSetX.PointsLepetit(
[in] IHUntypedObjectX* Image, [in] VARIANT Radius, [in] VARIANT CheckNeighbor, [in] VARIANT MinCheckNeighborDiff, [in] VARIANT MinScore, [in] VARIANT Subpix, [out] VARIANT* Row, [out] VARIANT* Column)

VARIANT HImageX.PointsLepetit(
[in] Hlong Radius, [in] Hlong CheckNeighbor, [in] Hlong MinCheckNeighborDiff, [in] Hlong MinScore, [in] BSTR Subpix, [out] VARIANT* Column)

static void HOperatorSet.PointsLepetit(HObject image, HTuple radius, HTuple checkNeighbor, HTuple minCheckNeighborDiff, HTuple minScore, HTuple subpix, out HTuple row, out HTuple column)

void HImage.PointsLepetit(int radius, int checkNeighbor, int minCheckNeighborDiff, int minScore, string subpix, out HTuple row, out HTuple column)

Beschreibung

points_lepetitpoints_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit extrahiert signifikante Punkte wie z.B. Ecken aus dem Bild ImageImageImageImageImageimage. Dazu wird ImageImageImageImageImageimage zunächst mit einem 3x3 Medianfilter geglättet. Anschließend werden alle Grauwerte auf einem Kreis mit dem Radius RadiusRadiusRadiusRadiusRadiusradius um einen Interestpunktkandidaten (m) betrachtet. Es werden die absoluten Differenzen zweier auf dem Kreis diagonal gegenüberliegenden Grauwerte (m1, m2) zu dem des zentralen Pixels m gebildet. Mindestens eine dieser Differenzen muss dabei größer als MinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffminCheckNeighborDiff sein. Alle sich gegenüber liegenden Kreispunkte müssen diese Bedingung erfüllen. Um die Detektion von Punkten entlang von leicht gekrümmten Kanten (Aliasing) zu verhindern, ist es möglich, zusätzliche Differenzen von CheckNeighborCheckNeighborCheckNeighborCheckNeighborCheckNeighborcheckNeighbor Kreisnachbarpixeln von m1 und m2 zum Zentrum zu bilden, die ebenfalls obiges Kriterium erfüllen. Durch Bildung aller Grauwertdifferenzen der Kreispunkte zum Zentrum wird ein mittlerer Grauwertunterschied berechnet. Dieser Wert muss größer MinScoreMinScoreMinScoreMinScoreMinScoreminScore sein und ermöglicht eine Restriktion auf Punkte hohen Kontrasts. Mit Hilfe der Berechnung aller mittleren Grauwertunterschiede in der Achternachbarschaft des Interestpunktes ist es möglich eine quadratische Gleichung anzupassen. Durch Ermittlung des Maximums dieser Funktion kann die Position des Interestpunktes auf Subpixelgenauigkeit verfeinert werden. Durch das Setzen des Parameters SubpixSubpixSubpixSubpixSubpixsubpix auf 'interpolation' (Default) oder 'none' kann dieses Verhalten an- bzw. ausgeschaltet werden. Die so ermittelten Punkte werden in RowRowRowRowRowrow und ColumnColumnColumnColumnColumncolumn übergeben. Der Operator points_lepetitpoints_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit kann für eine besonders schnelle Extraktion signifikanter Punkte verwendet werden. Jedoch sind die extrahierten Punkte weniger Robust, als solche, die z.B. mit Hilfe von points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris gefunden werden.

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 / uint2)

Eingabebild.

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

Der Radius des Kreises.

Defaultwert: 3

Wertevorschläge: 3, 5, 6, 7, 8, 9, 10, 15

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

Die Anzahl von untersuchten Nachbarpixeln auf dem Kreis.

Defaultwert: 1

Wertevorschläge: 1, 2, 3, 5

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

Schwellwert der Grauwertdifferenz zu jedem einzelnen Kreispunkt.

Defaultwert: 15

Wertevorschläge: 10, 15, 20, 25, 30, 35, 40, 45, 60, 80

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

Schwellwert der Grauwertdifferenz zu allen Kreispunkten.

Defaultwert: 30

Wertevorschläge: 5, 10, 15, 20, 25, 30

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

Subpixelgenaue Punktkoordinaten.

Defaultwert: 'interpolation' "interpolation" "interpolation" "interpolation" "interpolation" "interpolation"

Werteliste: 'interpolation'"interpolation""interpolation""interpolation""interpolation""interpolation", 'none'"none""none""none""none""none"

RowRowRowRowRowrow (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double) (Hlong / double) (Hlong / double)

Zeilenkoordinaten der detektierten Punkte.

ColumnColumnColumnColumnColumncolumn (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double) (Hlong / double) (Hlong / double)

Spaltenkoordinaten der detektierten Punkte.

Vorgänger

gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter

Alternativen

points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner, points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris, points_harris_binomialpoints_harris_binomialPointsHarrisBinomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomial, points_sojkapoints_sojkaPointsSojkapoints_sojkaPointsSojkaPointsSojka

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren