points_harris
— Suche nach signifikanten Punkten mittels des Harris-Operators.
points_harris
extrahiert signifikante Punkte aus einem Bild. Der
Harris Operator-basiert auf der geglätteten Matrix
wobei für eine Gaußsche Glättung der Größe
SigmaSmooth
und und für
die ersten Ableitungen der einzelnen Bildkanäle stehen. Die Ableitungen
werden mittels eines Gaußfilters der Größe SigmaGrad
implementiert. Die resultierenden Punkte sind dann die positiven lokalen
Maxima von
Nötigenfalls können die extrahierten Punkte auf diejenigen mit einer
minimalen Filterantwort von Threshold
eingeschränkt werden.
Die Koordinaten der Punkte werden mit Subpixelgenauigkeit berechnet.
points_harris
wird durch SSE2 Instruktionen beschleunigt, falls
der Systemparameter 'sse2_enable' auf '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 Row
und Column
in einer Größenordnung
von 1.0e-5). Falls für Ihre Anwendung Genauigkeit wichtiger ist als
Geschwindigkeit können Sie 'sse2_enable' auf 'false'
setzen, bevor Sie points_harris
aufrufen. Dadurch verwendet
points_harris
keine SSE2 Beschleunigungen. Vergessen Sie nicht
'sse2_enable' danach wieder auf 'true' zu setzen.
points_harris
kann auf OpenCL-Geräten ausgeführt werden, sofern
SigmaGrad
und SigmaSmooth
zu einer Filtergröße kleiner
gleich 129 Pixeln führen. Dies entspricht einem Wert kleiner 20.7 für beide
Parameter. Wie bei der SSE2-Variante kann es zu geringfühgigen Unterschieden
zwischen dem Ergebnis der OpenCL-Implementierung und dem der reinen
C-Implementierung kommen.
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) (multichannel-)image →
object (byte* / uint2* / real*) *erlaubt für Compute Devices
Eingabebild.
SigmaGrad
(input_control) real →
(real)
Stärke der Glättung zur Berechnung des Gradienten.
Defaultwert: 0.7
Wertevorschläge: 0.7, 0.8, 0.9, 1.0, 1.2, 1.5, 2.0, 3.0
Typischer Wertebereich: 0.7
≤
SigmaGrad
≤
50.0
Empfohlene Schrittweite: 0.1
Restriktion: SigmaGrad > 0.0
SigmaSmooth
(input_control) real →
(real)
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
≤
SigmaSmooth
≤
50.0
Empfohlene Schrittweite: 0.1
Restriktion: SigmaSmooth > 0.0
Alpha
(input_control) real →
(real)
Gewichtung der quadrierten Spur der Matrix der quadrierten Gradienten.
Defaultwert: 0.08
Wertevorschläge: 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08
Typischer Wertebereich: 0.001
≤
Alpha
≤
0.1
Minimale Schrittweite: 0.001
Empfohlene Schrittweite: 0.01
Restriktion: Alpha > 0.0
Threshold
(input_control) number →
(real / integer)
Minimale Filterantwort der Punkte.
Defaultwert: 1000.0
Restriktion: Threshold >= 0.0
Row
(output_control) point.y-array →
(real)
Zeilenkoordinaten der gefundenen Punkte.
Column
(output_control) point.x-array →
(real)
Spaltenkoordinaten der gefundenen Punkte.
Sind die Parameterwerte korrekt und tritt kein Fehler während der
Berechnung auf, liefert points_harris
den Wert 2 (H_MSG_TRUE). Das
Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt
sich mittels set_system('no_object_result',<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
points_foerstner
,
points_lepetit
,
points_harris_binomial
C. Harris, M. Stephens: „A combined corner and edge
detector“. Proceedings of the 4th Alvey Vision Conference,
pp. 147-151, 1988.
V. Gouet, N.Boujemaa: „Object-based queries using color points of
interest“. IEEE Workshop on Content-Based Access of Image and Video
Libraries, CVPR/CBAIVL 2001, Hawaii, USA, 2001.
Foundation