gen_contours_skeleton_xld
— Umwandeln eines Skeletts in XLD-Konturen.
Mit gen_contours_skeleton_xld
wird das in
Skeleton
als Region übergebene Skelett (z.B. Bildkanten)
in die Konturdarstellung umgerechnet. Es wird angenommen, dass der
Großteil der Region nur ein Pixel breit ist (siehe
skeleton
).
Der Algorithmus versucht zunächst, die Region so zu transformieren,
dass sie in 8-Nachbarschaft nur noch Linienzüge enthält.
In einem zweiten Schritt werden die Kreuzungspunkte markiert.
Anschließend versucht gen_contours_skeleton_xld
Konturen zu
erzeugen, die in End- und Kreuzungspunkten enden, insbesondere für
Kreuzungspunkte in den folgenden Konfigurationen (in allen vier
Rotationen):
1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 0
0 2 0 0 2 0 0 2 1 0 2 1 0 2 1 1 2 1
0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0
wobei 0 = Hintergrund, 1 = Vordergrund und 2 = Kreuzungspunkt.
Anschließend werden die Konturen zurückgegeben, die einschließlich End-
und Kreuzungspunkten mindestens Length
Punkte lang sind.
Die Unterbrechung der Konturen an Kreuzungspunkten hat zur Folge,
dass auch längere Linienzüge durch Kreuzen von kurzen Linien (auch
wenn diese weniger als Length
Punkte lang sind) in
mehrere Konturen zerfallen (Mode
'filter'). Dies wird mit
dem Filtermodus (Mode
) 'generalize1' vermieden. In diesem
Fall werden die Konturen so erzeugt, wie wenn die Konturen kürzer
als Length
Punkte nicht vorhanden wären. Damit auch
Linienzüge, die durch Kreuzen von kurzen Linien in sehr kurze
Konturen zerfallen, erhalten bleiben, kann der Filtermodus
(Mode
) 'generalize2' eingestellt werden. In diesem Fall
bleiben Linienstücke erhalten, deren beide Endpunkte
Kreuzungspunkte mit anderen Linien sind, auch wenn sie kürzer als
Length
Punkte sind.
Skeleton
(input_object) region →
object
Skelett für die Konturberechnung.
Contours
(output_object) xld_cont-array →
object
Ausgabe-Konturen.
Length
(input_control) integer →
(integer)
Mindestlänge zu erfassender Konturen.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 5, 10, 20
Mode
(input_control) string →
(string)
Kontur-Filtermodus.
Defaultwert: 'filter'
Werteliste: 'filter' , 'generalize1' , 'generalize2'
smooth_contours_xld
,
get_contour_xld
,
gen_polygons_xld
edges_image
,
threshold
,
get_region_contour
Foundation