hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirhough_line_trans_dir (Operator)

Name

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

def hough_line_trans_dir(image_dir: HObject, direction_uncertainty: int, angle_resolution: int) -> HObject

Beschreibung

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirHoughLineTransDirhough_line_trans_dir berechnet für die durch den Definitionsbereich von ImageDirImageDirImageDirImageDirimageDirimage_dir ü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_transHoughLineTransHoughLineTransHoughLineTranshough_line_trans wird hier jedoch zusätzlich die in ImageDirImageDirImageDirImageDirimageDirimage_dir übergebene Kantenrichtung berücksichtigt, die z.B. mit Hilfe von sobel_dirsobel_dirSobelDirSobelDirSobelDirsobel_dir oder edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image bestimmt werden kann. Dies führt zu einer effizienteren Berechnung und zu einer Reduktion des Rauschens im Hough-Raum.

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

Das Ergebnis wird in ein neu erzeugtes UINT2-Image (HoughImageHoughImageHoughImageHoughImagehoughImagehough_image) 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 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution eingetragen. Das bedeutet, dass ein Pixel in x-Richtung 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution Grad entspricht und dass das HoughImageHoughImageHoughImageHoughImagehoughImagehough_image 270 * AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution + 1 Pixel breit ist. Die Höhe von HoughImageHoughImageHoughImageHoughImagehoughImagehough_image 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

ImageDirImageDirImageDirImageDirimageDirimage_dir (input_object)  singlechannelimage objectHImageHObjectHImageHobject (direction)

Kantenrichtungsbild mit auf die Kanten eingeschränktem Definitionsbereich.

HoughImageHoughImageHoughImageHoughImagehoughImagehough_image (output_object)  image objectHImageHObjectHImageHobject * (uint2)

Hough-Transformation.

DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_uncertainty (input_control)  angle.deg HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Kantenungenauigkeit (in Grad).

Defaultwert: 2

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

Minimale Schrittweite: 2

AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution (input_control)  integer HTupleintHTupleHtuple (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_dirHoughLineTransDirHoughLineTransDirHoughLineTransDirhough_line_trans_dir 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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, sobel_dirsobel_dirSobelDirSobelDirSobelDirsobel_dir, thresholdthresholdThresholdThresholdThresholdthreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

Nachfolger

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, thresholdthresholdThresholdThresholdThresholdthreshold, local_maxlocal_maxLocalMaxLocalMaxLocalMaxlocal_max, plateaus_centerplateaus_centerPlateausCenterPlateausCenterPlateausCenterplateaus_center

Siehe auch

hough_line_transhough_line_transHoughLineTransHoughLineTransHoughLineTranshough_line_trans, hough_lineshough_linesHoughLinesHoughLinesHoughLineshough_lines, hough_lines_dirhough_lines_dirHoughLinesDirHoughLinesDirHoughLinesDirhough_lines_dir

Modul

Foundation