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
Berechung; 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 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>)
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