Name
points_lepetitT_points_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit — Suche nach signifikanten Punkten mittels des Lepetit-Operators.
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)
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.
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.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Domainebene.
Der Radius des Kreises.
Defaultwert: 3
Wertevorschläge: 3, 5, 6, 7, 8, 9, 10, 15
Die Anzahl von untersuchten Nachbarpixeln
auf dem Kreis.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 5
Schwellwert der Grauwertdifferenz zu jedem
einzelnen Kreispunkt.
Defaultwert: 15
Wertevorschläge: 10, 15, 20, 25, 30, 35, 40, 45, 60, 80
Schwellwert der Grauwertdifferenz zu allen
Kreispunkten.
Defaultwert: 30
Wertevorschläge: 5, 10, 15, 20, 25, 30
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.
Spaltenkoordinaten der detektierten Punkte.
gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter
points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner,
points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris,
points_harris_binomialpoints_harris_binomialPointsHarrisBinomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomial,
points_sojkapoints_sojkaPointsSojkapoints_sojkaPointsSojkaPointsSojka
Foundation