gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld (Operator)

Name

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld — Umwandeln eines Skeletts in XLD-Konturen.

Signatur

gen_contours_skeleton_xld(Skeleton : Contours : Length, Mode : )

Herror gen_contours_skeleton_xld(const Hobject Skeleton, Hobject* Contours, const Hlong Length, const char* Mode)

Herror T_gen_contours_skeleton_xld(const Hobject Skeleton, Hobject* Contours, const Htuple Length, const Htuple Mode)

void GenContoursSkeletonXld(const HObject& Skeleton, HObject* Contours, const HTuple& Length, const HTuple& Mode)

HXLDCont HRegion::GenContoursSkeletonXld(Hlong Length, const HString& Mode) const

HXLDCont HRegion::GenContoursSkeletonXld(Hlong Length, const char* Mode) const

HXLDCont HRegion::GenContoursSkeletonXld(Hlong Length, const wchar_t* Mode) const   (Nur Windows)

static void HOperatorSet.GenContoursSkeletonXld(HObject skeleton, out HObject contours, HTuple length, HTuple mode)

HXLDCont HRegion.GenContoursSkeletonXld(int length, string mode)

Beschreibung

Mit gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld wird das in SkeletonSkeletonSkeletonSkeletonskeleton 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 skeletonskeletonSkeletonSkeletonSkeleton).

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_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld 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 LengthLengthLengthLengthlength 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 LengthLengthLengthLengthlength Punkte lang sind) in mehrere Konturen zerfallen (ModeModeModeModemode 'filter'). Dies wird mit dem Filtermodus (ModeModeModeModemode) 'generalize1' vermieden. In diesem Fall werden die Konturen so erzeugt, wie wenn die Konturen kürzer als LengthLengthLengthLengthlength 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 (ModeModeModeModemode) 'generalize2' eingestellt werden. In diesem Fall bleiben Linienstücke erhalten, deren beide Endpunkte Kreuzungspunkte mit anderen Linien sind, auch wenn sie kürzer als LengthLengthLengthLengthlength Punkte sind.

Ausführungsinformationen

Parameter

SkeletonSkeletonSkeletonSkeletonskeleton (input_object)  region objectHRegionHRegionHobject

Skelett für die Konturberechnung.

ContoursContoursContoursContourscontours (output_object)  xld_cont-array objectHXLDContHXLDContHobject *

Ausgabe-Konturen.

LengthLengthLengthLengthlength (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Mindestlänge zu erfassender Konturen.

Defaultwert: 1

Wertevorschläge: 1, 2, 3, 5, 10, 20

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Kontur-Filtermodus.

Defaultwert: 'filter' "filter" "filter" "filter" "filter"

Werteliste: 'filter'"filter""filter""filter""filter", 'generalize1'"generalize1""generalize1""generalize1""generalize1", 'generalize2'"generalize2""generalize2""generalize2""generalize2"

Vorgänger

skeletonskeletonSkeletonSkeletonSkeleton

Nachfolger

smooth_contours_xldsmooth_contours_xldSmoothContoursXldSmoothContoursXldSmoothContoursXld, get_contour_xldget_contour_xldGetContourXldGetContourXldGetContourXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld

Siehe auch

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, thresholdthresholdThresholdThresholdThreshold, get_region_contourget_region_contourGetRegionContourGetRegionContourGetRegionContour

Modul

Foundation