| Operatoren |
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
/ n n \
| --- --- |
| \ 2 \ |
| / Ix,c / Ix,c Iy,c |
| --- --- |
| c=1 c=1 |
M = G * | |,
| n n |
| --- --- |
| \ \ 2 |
| / Ix,c Iy,c / Iy,c |
| --- --- |
\ c=1 c=1 /
wobei G für eine Gaußsche Glättung der Größe SigmaSmooth und Ix,c und Iy,c 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
2
Det(M) - Alpha*(Spur(M)) .
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.
Eingabebild.
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
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
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
Minimale Filterantwort der Punkte.
Defaultwert: 1000.0
Restriktion: Threshold >= 0.0
Zeilenkoordinaten der gefundenen Punkte.
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
| Operatoren |