hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDir (Operator)

Name

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDir — Berechnung der Hough-Transformation für Linien unter Berücksichtigung der lokalen Gradientenrichtung.

Signatur

hough_line_trans_dir(ImageDir : HoughImage : DirectionUncertainty, AngleResolution : )

Herror hough_line_trans_dir(const Hobject ImageDir, Hobject* HoughImage, const Hlong DirectionUncertainty, const Hlong AngleResolution)

Herror T_hough_line_trans_dir(const Hobject ImageDir, Hobject* HoughImage, const Htuple DirectionUncertainty, const Htuple AngleResolution)

void HoughLineTransDir(const HObject& ImageDir, HObject* HoughImage, const HTuple& DirectionUncertainty, const HTuple& AngleResolution)

HImage HImage::HoughLineTransDir(Hlong DirectionUncertainty, Hlong AngleResolution) const

static void HOperatorSet.HoughLineTransDir(HObject imageDir, out HObject houghImage, HTuple directionUncertainty, HTuple angleResolution)

HImage HImage.HoughLineTransDir(int directionUncertainty, int angleResolution)

Beschreibung

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirHoughLineTransDir berechnet für die durch den Definitionsbereich von ImageDirImageDirImageDirImageDirimageDir übergebene Region die Hough-Transformation für Linien. Dabei werden im Parameterraum (bzw. Hough- oder Akkumulatorraum) Winkel und Länge der Normalenvektoren der Linien eingetragen.

Im Unterschied zu hough_line_transhough_line_transHoughLineTransHoughLineTransHoughLineTrans wird hier jedoch zusätzlich die in ImageDirImageDirImageDirImageDirimageDir übergebene Kantenrichtung berücksichtigt, die z.B. mit Hilfe von sobel_dirsobel_dirSobelDirSobelDirSobelDir oder edges_imageedges_imageEdgesImageEdgesImageEdgesImage bestimmt werden kann. Dies führt zu einer effizienteren Berechnung und zu einer Reduktion des Rauschens im Hough-Raum.

Der Parameter DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty beschreibt hierbei, wie stark die Kantenrichtung der einzelnen Punkte innerhalb einer Linie variieren darf. Ist z.B. DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty = 10, werden einer waagrechten Linie (d.h. Kantenrichtung = 0 Grad) nur Punkte mit einer Kantenrichtung zwischen -10 und +10 Grad zugeordnet. Je größer DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty gewählt wird desto langsamer ist die Berechung; für DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty = 180 entspricht das Verhalten von hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirHoughLineTransDir dem von hough_line_transhough_line_transHoughLineTransHoughLineTransHoughLineTrans, d.h. die Kantenrichtung wird ignoriert. DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty sollte mindestens so groß gewählt werden wie die Winkelschrittweite, in der die Kantenrichtungen in ImageDirImageDirImageDirImageDirimageDir gespeichert werden; die minimale Schrittweite beträgt 2 Grad (vorgegeben vom Bildtyp 'direction').

Das Ergebnis wird in ein neu erzeugtes UINT2-Image (HoughImageHoughImageHoughImageHoughImagehoughImage) eingetragen, bei dem die x-Achse (Spalten) dem Winkel des Normalenvektors zur x-Achse des Ausgangsbildes und die y-Achse (Zeilen) dem Abstand der Linie vom Ursprung entspricht.

Der Winkel läuft von -90 Grad bis 180 Grad, und wird mit einer Auflösung von 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution eingetragen. Das bedeutet, dass ein Pixel in x-Richtung 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution Grad entspricht und dass das HoughImageHoughImageHoughImageHoughImagehoughImage 270 * AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution + 1 Pixel breit ist. Die Höhe von HoughImageHoughImageHoughImageHoughImagehoughImage entspricht dem Abstand der unteren rechten Ecke des umschließenden Rechtecks der Eingabe-Region vom Ursprung.

Die Maxima im Ergebnisbild entsprechen den Parameterwerten der Linien im Ausgangsbild.

Ausführungsinformationen

Parameter

ImageDirImageDirImageDirImageDirimageDir (input_object)  singlechannelimage objectHImageHImageHobject (direction)

Kantenrichtungsbild mit auf die Kanten eingeschränktem Definitionsbereich.

HoughImageHoughImageHoughImageHoughImagehoughImage (output_object)  image objectHImageHImageHobject * (uint2)

Hough-Transformation.

DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty (input_control)  angle.deg HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Kantenungenauigkeit (in Grad).

Defaultwert: 2

Typischer Wertebereich: 2 ≤ DirectionUncertainty DirectionUncertainty DirectionUncertainty DirectionUncertainty directionUncertainty ≤ 180

Minimale Schrittweite: 2

AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Auflösung im Winkelbereich (in 1/Grad).

Defaultwert: 4

Werteliste: 1, 2, 4, 8

Ergebnis

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirHoughLineTransDir liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe nicht leer ist. Das Verhalten bei leerer Eingabe 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirSobelDirSobelDir, thresholdthresholdThresholdThresholdThreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThreshold, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirNonmaxSuppressionDir, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain

Nachfolger

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter, thresholdthresholdThresholdThresholdThreshold, local_maxlocal_maxLocalMaxLocalMaxLocalMax, plateaus_centerplateaus_centerPlateausCenterPlateausCenterPlateausCenter

Siehe auch

hough_line_transhough_line_transHoughLineTransHoughLineTransHoughLineTrans, hough_lineshough_linesHoughLinesHoughLinesHoughLines, hough_lines_dirhough_lines_dirHoughLinesDirHoughLinesDirHoughLinesDir

Modul

Foundation