gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldgen_contours_skeleton_xld (Operator)

Name

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldgen_contours_skeleton_xld — 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)

def gen_contours_skeleton_xld(skeleton: HObject, length: int, mode: str) -> HObject

Beschreibung

Mit gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldgen_contours_skeleton_xld 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_xldGenContoursSkeletonXldGenContoursSkeletonXldgen_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 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'"filter""filter""filter""filter"). Dies wird mit dem Filtermodus (ModeModeModemodemode) 'generalize1'"generalize1""generalize1""generalize1""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'"generalize2""generalize2""generalize2""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 objectHRegionHObjectHObjectHobject

Skelett für die Konturberechnung.

ContoursContoursContourscontourscontours (output_object)  xld_cont-array objectHXLDContHObjectHObjectHobject *

Ausgabe-Konturen.

LengthLengthLengthlengthlength (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Mindestlänge zu erfassender Konturen.

Default: 1

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

ModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Kontur-Filtermodus.

Default: '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_xldSmoothContoursXldSmoothContoursXldsmooth_contours_xld, get_contour_xldget_contour_xldGetContourXldGetContourXldget_contour_xld, gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldgen_polygons_xld

Siehe auch

edges_imageedges_imageEdgesImageEdgesImageedges_image, thresholdthresholdThresholdThresholdthreshold, get_region_contourget_region_contourGetRegionContourGetRegionContourget_region_contour

Modul

Foundation