points_lepetit
— Suche nach signifikanten Punkten mittels des Lepetit-Operators.
points_lepetit(Image : : Radius, CheckNeighbor, MinCheckNeighborDiff, MinScore, Subpix : Row, Column)
points_lepetit
extrahiert signifikante Punkte wie z.B. Ecken
aus dem Bild Image
. Dazu wird Image
zunächst
mit einem 3x3 Medianfilter geglättet.
Anschließend werden alle Grauwerte auf einem Kreis mit dem Radius
Radius
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 MinCheckNeighborDiff
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
CheckNeighbor
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 MinScore
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 Subpix
auf 'interpolation'
(Default) oder 'none' kann dieses Verhalten an- bzw. ausgeschaltet
werden. Die so ermittelten Punkte werden in
Row
und Column
übergeben. Der Operator
points_lepetit
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_harris
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.
Image
(input_object) singlechannelimage →
object (byte / uint2)
Eingabebild.
Radius
(input_control) integer →
(integer)
Der Radius des Kreises.
Defaultwert: 3
Wertevorschläge: 3, 5, 6, 7, 8, 9, 10, 15
CheckNeighbor
(input_control) integer →
(integer)
Die Anzahl von untersuchten Nachbarpixeln auf dem Kreis.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 5
MinCheckNeighborDiff
(input_control) integer →
(integer)
Schwellwert der Grauwertdifferenz zu jedem einzelnen Kreispunkt.
Defaultwert: 15
Wertevorschläge: 10, 15, 20, 25, 30, 35, 40, 45, 60, 80
MinScore
(input_control) integer →
(integer)
Schwellwert der Grauwertdifferenz zu allen Kreispunkten.
Defaultwert: 30
Wertevorschläge: 5, 10, 15, 20, 25, 30
Subpix
(input_control) string →
(string)
Subpixelgenaue Punktkoordinaten.
Defaultwert: 'interpolation'
Werteliste: 'interpolation' , 'none'
Row
(output_control) point.y-array →
(integer / real)
Zeilenkoordinaten der detektierten Punkte.
Column
(output_control) point.x-array →
(integer / real)
Spaltenkoordinaten der detektierten Punkte.
points_foerstner
,
points_harris
,
points_harris_binomial
,
points_sojka
Foundation