KlassenKlassenKlassenKlassen | | | | Operatoren

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirhough_line_trans_dirHoughLineTransDirHoughLineTransDir (Operator)

Name

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirhough_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)

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

HImage HImage::HoughLineTransDir(const HTuple& DirectionUncertainty, const HTuple& AngleResolution) const

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

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

void HOperatorSetX.HoughLineTransDir(
[in] IHUntypedObjectX* ImageDir, [out] IHUntypedObjectX*HoughImage, [in] VARIANT DirectionUncertainty, [in] VARIANT AngleResolution)

IHImageX* HImageX.HoughLineTransDir(
[in] Hlong DirectionUncertainty, [in] Hlong AngleResolution)

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

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

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

Parallelisierung

Parameter

ImageDirImageDirImageDirImageDirImageDirimageDir (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (direction)

Kantenrichtungsbild mit auf die Kanten eingeschränktem Definitionsbereich.

HoughImageHoughImageHoughImageHoughImageHoughImagehoughImage (output_object)  image objectHImageHImageHImageHImageXHobject * (uint2)

Hough-Transformation.

DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty (input_control)  angle.deg HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Kantenungenauigkeit (in Grad).

Defaultwert: 2

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

Minimale Schrittweite: 2

AngleResolutionAngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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

Defaultwert: 4

Werteliste: 1, 2, 4, 8

Ergebnis

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirhough_line_trans_dirHoughLineTransDirHoughLineTransDir 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>)set_system("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_imageEdgesImageedges_imageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirsobel_dirSobelDirSobelDir, thresholdthresholdThresholdthresholdThresholdThreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDir, reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain

Nachfolger

binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter, thresholdthresholdThresholdthresholdThresholdThreshold, local_maxlocal_maxLocalMaxlocal_maxLocalMaxLocalMax, plateaus_centerplateaus_centerPlateausCenterplateaus_centerPlateausCenterPlateausCenter

Siehe auch

hough_line_transhough_line_transHoughLineTranshough_line_transHoughLineTransHoughLineTrans, hough_lineshough_linesHoughLineshough_linesHoughLinesHoughLines, hough_lines_dirhough_lines_dirHoughLinesDirhough_lines_dirHoughLinesDirHoughLinesDir

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren