KlassenKlassenKlassenKlassen | | | | Operatoren

points_harrisT_points_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris (Operator)

Name

points_harrisT_points_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris — 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)

Herror points_harris(Hobject Image, const HTuple& SigmaGrad, const HTuple& SigmaSmooth, const HTuple& Alpha, const HTuple& Threshold, HTuple* Row, HTuple* Column)

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

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

void HOperatorSetX.PointsHarris(
[in] IHUntypedObjectX* Image, [in] VARIANT SigmaGrad, [in] VARIANT SigmaSmooth, [in] VARIANT Alpha, [in] VARIANT Threshold, [out] VARIANT* Row, [out] VARIANT* Column)

VARIANT HImageX.PointsHarris(
[in] double SigmaGrad, [in] double SigmaSmooth, [in] double Alpha, [in] VARIANT Threshold, [out] VARIANT* Column)

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)

Beschreibung

points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris 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 SigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothsigmaSmooth und und für die ersten Ableitungen der einzelnen Bildkanäle stehen. Die Ableitungen werden mittels eines Gaußfilters der Größe SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad 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_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris 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_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris aufrufen. Dadurch verwendet points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris 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_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris kann auf OpenCL-Geräten ausgeführt werden, sofern SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad und SigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothsigmaSmooth 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.

Parallelisierung

Parameter

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

Eingabebild.

SigmaGradSigmaGradSigmaGradSigmaGradSigmaGradsigmaGrad (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 sigmaGrad ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaGrad > 0.0

SigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothSigmaSmoothsigmaSmooth (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 sigmaSmooth ≤ 50.0

Empfohlene Schrittweite: 0.1

Restriktion: SigmaSmooth > 0.0

AlphaAlphaAlphaAlphaAlphaalpha (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Minimale Filterantwort der Punkte.

Defaultwert: 1000.0

Restriktion: Threshold >= 0.0

RowRowRowRowRowrow (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinaten der gefundenen Punkte.

ColumnColumnColumnColumnColumncolumn (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinaten der gefundenen Punkte.

Ergebnis

Sind die Parameterwerte korrekt und tritt kein Fehler während der Berechnung auf, liefert points_harrispoints_harrisPointsHarrispoints_harrisPointsHarrisPointsHarris den Wert 2 (H_MSG_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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

gen_cross_contour_xldgen_cross_contour_xldGenCrossContourXldgen_cross_contour_xldGenCrossContourXldGenCrossContourXld

Alternativen

points_foerstnerpoints_foerstnerPointsFoerstnerpoints_foerstnerPointsFoerstnerPointsFoerstner, points_lepetitpoints_lepetitPointsLepetitpoints_lepetitPointsLepetitPointsLepetit, points_harris_binomialpoints_harris_binomialPointsHarrisBinomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomial

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


KlassenKlassenKlassenKlassen | | | | Operatoren