hough_line_trans_dir — Berechnung der Hough-Transformation für Linien unter Berücksichtigung der
lokalen Gradientenrichtung.
hough_line_trans_dir(ImageDir : HoughImage : DirectionUncertainty, AngleResolution : )
hough_line_trans_dir berechnet für die durch den
Definitionsbereich von ImageDir ü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_trans wird hier jedoch zusätzlich
die in ImageDir übergebene Kantenrichtung berücksichtigt, die
z.B. mit Hilfe von sobel_dir oder edges_image bestimmt
werden kann. Dies
führt zu einer effizienteren Berechnung und zu einer Reduktion des
Rauschens im Hough-Raum.
Der Parameter DirectionUncertainty beschreibt hierbei, wie stark
die Kantenrichtung der einzelnen Punkte innerhalb einer Linie variieren
darf. Ist z.B. DirectionUncertainty = 10, werden einer
waagrechten Linie (d.h. Kantenrichtung = 0 Grad) nur Punkte mit einer
Kantenrichtung zwischen -10 und +10 Grad zugeordnet. Je größer
DirectionUncertainty gewählt wird desto langsamer ist die
Berechnung; für DirectionUncertainty = 180 entspricht
das Verhalten von hough_line_trans_dir dem von
hough_line_trans, d.h. die Kantenrichtung wird ignoriert.
DirectionUncertainty sollte mindestens so groß gewählt werden
wie die Winkelschrittweite, in der die Kantenrichtungen in
ImageDir gespeichert werden; die minimale Schrittweite beträgt
2 Grad (vorgegeben vom Bildtyp 'direction').
Das Ergebnis wird in ein neu erzeugtes UINT2-Image (HoughImage)
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 / AngleResolution eingetragen. Das bedeutet, dass ein
Pixel in x-Richtung 1 / AngleResolution Grad entspricht und
dass das HoughImage 270 * AngleResolution + 1
Pixel breit ist. Die Höhe von HoughImage 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.
ImageDir (input_object) singlechannelimage → object (direction)
Kantenrichtungsbild mit auf die Kanten eingeschränktem Definitionsbereich.
HoughImage (output_object) image → object (uint2)
Hough-Transformation.
DirectionUncertainty (input_control) angle.deg → (integer)
Kantenungenauigkeit (in Grad).
Defaultwert: 2
Typischer Wertebereich: 2
≤
DirectionUncertainty
≤
180
Minimale Schrittweite: 2
AngleResolution (input_control) integer → (integer)
Auflösung im Winkelbereich (in 1/Grad).
Defaultwert: 4
Werteliste: 1, 2, 4, 8
hough_line_trans_dir liefert den Wert TRUE,
falls die Eingabe nicht leer
ist. Das Verhalten bei leerer Eingabe lässt sich mittels
set_system('no_object_result',<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
edges_image,
sobel_dir,
threshold,
hysteresis_threshold,
nonmax_suppression_dir,
reduce_domain
binomial_filter,
gauss_filter,
threshold,
local_max,
plateaus_center
hough_line_trans,
hough_lines,
hough_lines_dir
Foundation