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

Der Parameter DirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_uncertainty beschreibt hierbei, wie stark die Kantenrichtung der einzelnen Punkte innerhalb einer Linie variieren darf. Ist z.B. DirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_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 DirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_uncertainty gewählt wird desto langsamer ist die Berechnung; für DirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_uncertainty = 180 entspricht das Verhalten von hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirhough_line_trans_dir dem von hough_line_transhough_line_transHoughLineTransHoughLineTranshough_line_trans, d.h. die Kantenrichtung wird ignoriert. DirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_uncertainty sollte mindestens so groß gewählt werden wie die Winkelschrittweite, in der die Kantenrichtungen in ImageDirImageDirImageDirimageDirimage_dir gespeichert werden; die minimale Schrittweite beträgt 2 Grad (vorgegeben vom Bildtyp 'direction').

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

ImageDirImageDirImageDirimageDirimage_dir (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (direction)

Kantenrichtungsbild mit auf die Kanten eingeschränktem Definitionsbereich.

HoughImageHoughImageHoughImagehoughImagehough_image (output_object)  image objectHImageHObjectHObjectHobject * (uint2)

Hough-Transformation.

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

Kantenungenauigkeit (in Grad).

Default: 2

Wertebereich: 2 ≤ DirectionUncertainty DirectionUncertainty DirectionUncertainty directionUncertainty direction_uncertainty ≤ 180

Minimale Schrittweite: 2

AngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Default: 4

Werteliste: 1, 2, 4, 8

Ergebnis

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

Vorgänger

edges_imageedges_imageEdgesImageEdgesImageedges_image, sobel_dirsobel_dirSobelDirSobelDirsobel_dir, thresholdthresholdThresholdThresholdthreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir, reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain

Nachfolger

binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter, thresholdthresholdThresholdThresholdthreshold, local_maxlocal_maxLocalMaxLocalMaxlocal_max, plateaus_centerplateaus_centerPlateausCenterPlateausCenterplateaus_center

Siehe auch

hough_line_transhough_line_transHoughLineTransHoughLineTranshough_line_trans, hough_lineshough_linesHoughLinesHoughLineshough_lines, hough_lines_dirhough_lines_dirHoughLinesDirHoughLinesDirhough_lines_dir

Modul

Foundation