KlassenKlassenKlassenKlassen | | | | Operatoren

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld (Operator)

Name

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldgen_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)

Herror gen_contours_skeleton_xld(Hobject Skeleton, Hobject* Contours, const HTuple& Length, const HTuple& Mode)

HXLDContArray HRegion::GenContoursSkeletonXld(const HTuple& Length, const HTuple& Mode) const

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

void HOperatorSetX.GenContoursSkeletonXld(
[in] IHUntypedObjectX* Skeleton, [out] IHUntypedObjectX*Contours, [in] VARIANT Length, [in] VARIANT Mode)

IHXLDContX* HRegionX.GenContoursSkeletonXld(
[in] Hlong Length, [in] BSTR Mode)

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_xldGenContoursSkeletonXldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld wird das in SkeletonSkeletonSkeletonSkeletonSkeletonskeleton 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 skeletonskeletonSkeletonskeletonSkeletonSkeleton).

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

Parallelisierung

Parameter

SkeletonSkeletonSkeletonSkeletonSkeletonskeleton (input_object)  region objectHRegionHRegionHRegionHRegionXHobject

Skelett für die Konturberechnung.

ContoursContoursContoursContoursContourscontours (output_object)  xld_cont-array objectHXLDContHXLDContHXLDContArrayHXLDContXHobject *

Ausgabe-Konturen.

LengthLengthLengthLengthLengthlength (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Mindestlänge zu erfassender Konturen.

Defaultwert: 1

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

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Kontur-Filtermodus.

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

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

Vorgänger

skeletonskeletonSkeletonskeletonSkeletonSkeleton

Nachfolger

smooth_contours_xldsmooth_contours_xldSmoothContoursXldsmooth_contours_xldSmoothContoursXldSmoothContoursXld, get_contour_xldget_contour_xldGetContourXldget_contour_xldGetContourXldGetContourXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldgen_polygons_xldGenPolygonsXldGenPolygonsXld

Siehe auch

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, thresholdthresholdThresholdthresholdThresholdThreshold, get_region_contourget_region_contourGetRegionContourget_region_contourGetRegionContourGetRegionContour

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren