points_harrisT_points_harrisPointsHarrisPointsHarrispoints_harris (Operator)

Name

points_harrisT_points_harrisPointsHarrisPointsHarrispoints_harris — Suche nach signifikanten Punkten mittels des Harris-Operators.

Signatur

points_harris(Image : : SigmaGrad, SigmaSmooth, Alpha, Threshold : Row, Column)

Herror T_points_harris(const Hobject Image, const Htuple SigmaGrad, const Htuple SigmaSmooth, const Htuple Alpha, const Htuple Threshold, Htuple* Row, Htuple* Column)

void PointsHarris(const HObject& Image, const HTuple& SigmaGrad, const HTuple& SigmaSmooth, const HTuple& Alpha, const HTuple& Threshold, HTuple* Row, HTuple* Column)

void HImage::PointsHarris(double SigmaGrad, double SigmaSmooth, double Alpha, const HTuple& Threshold, HTuple* Row, HTuple* Column) const

void HImage::PointsHarris(double SigmaGrad, double SigmaSmooth, double Alpha, double Threshold, HTuple* Row, HTuple* Column) const

static void HOperatorSet.PointsHarris(HObject image, HTuple sigmaGrad, HTuple sigmaSmooth, HTuple alpha, HTuple threshold, out HTuple row, out HTuple column)

void HImage.PointsHarris(double sigmaGrad, double sigmaSmooth, double alpha, HTuple threshold, out HTuple row, out HTuple column)

void HImage.PointsHarris(double sigmaGrad, double sigmaSmooth, double alpha, double threshold, out HTuple row, out HTuple column)

def points_harris(image: HObject, sigma_grad: float, sigma_smooth: float, alpha: float, threshold: Union[float, int]) -> Tuple[Sequence[float], Sequence[float]]

Beschreibung

points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_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 SigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothsigmaSmoothsigma_smooth und und für die ersten Ableitungen der einzelnen Bildkanäle stehen. Die Ableitungen werden mittels eines Gaußfilters der Größe SigmaGradSigmaGradSigmaGradSigmaGradsigmaGradsigma_grad 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 ThresholdThresholdThresholdThresholdthresholdthreshold eingeschränkt werden. Die Koordinaten der Punkte werden mit Subpixelgenauigkeit berechnet.

Achtung

points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris wird durch SSE2 Instruktionen beschleunigt, falls der Systemparameter 'sse2_enable'"sse2_enable""sse2_enable""sse2_enable""sse2_enable""sse2_enable" auf 'true'"true""true""true""true""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 RowRowRowRowrowrow und ColumnColumnColumnColumncolumncolumn in einer Größenordnung von 1.0e-5). Falls für Ihre Anwendung Genauigkeit wichtiger ist als Geschwindigkeit können Sie 'sse2_enable'"sse2_enable""sse2_enable""sse2_enable""sse2_enable""sse2_enable" auf 'false'"false""false""false""false""false" setzen, bevor Sie points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris aufrufen. Dadurch verwendet points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris keine SSE2 Beschleunigungen. Vergessen Sie nicht 'sse2_enable'"sse2_enable""sse2_enable""sse2_enable""sse2_enable""sse2_enable" danach wieder auf 'true'"true""true""true""true""true" zu setzen.

points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris kann auf OpenCL-Geräten ausgeführt werden, sofern SigmaGradSigmaGradSigmaGradSigmaGradsigmaGradsigma_grad und SigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothsigmaSmoothsigma_smooth 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ügigen 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.

Ausführungsinformationen

Parameter

ImageImageImageImageimageimage (input_object)  (multichannel-)image objectHImageHObjectHImageHobject (byte* / uint2* / real*) *erlaubt für Compute Devices

Eingabebild.

SigmaGradSigmaGradSigmaGradSigmaGradsigmaGradsigma_grad (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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 SigmaGrad SigmaGrad SigmaGrad sigmaGrad sigma_grad ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaGrad > 0.0

SigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothsigmaSmoothsigma_smooth (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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 SigmaSmooth SigmaSmooth SigmaSmooth sigmaSmooth sigma_smooth ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaSmooth > 0.0

AlphaAlphaAlphaAlphaalphaalpha (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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 Alpha Alpha Alpha alpha alpha ≤ 0.1

Minimale Schrittweite: 0.001

Empfohlene Schrittweite: 0.01

Restriktion: Alpha > 0.0

ThresholdThresholdThresholdThresholdthresholdthreshold (input_control)  number HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Minimale Filterantwort der Punkte.

Defaultwert: 1000.0

Restriktion: Threshold >= 0.0

RowRowRowRowrowrow (output_control)  point.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten der gefundenen Punkte.

ColumnColumnColumnColumncolumncolumn (output_control)  point.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten der gefundenen Punkte.

Ergebnis

Sind die Parameterwerte korrekt und tritt kein Fehler während der Berechnung auf, liefert points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris den Wert TRUE. Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

gen_cross_contour_xldgen_cross_contour_xldGenCrossContourXldGenCrossContourXldGenCrossContourXldgen_cross_contour_xld

Alternativen

points_foerstnerpoints_foerstnerPointsFoerstnerPointsFoerstnerPointsFoerstnerpoints_foerstner, points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetitpoints_lepetit, points_harris_binomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomialPointsHarrisBinomialpoints_harris_binomial

Literatur

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.

Modul

Foundation