KlassenKlassenKlassenKlassen | | | | Operatoren

close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges (Operator)

Name

close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges — Schließen von Kanten gemäß Amplitudenbild.

Signatur

close_edges(Edges, EdgeImage : RegionResult : MinAmplitude : )

Herror close_edges(const Hobject Edges, const Hobject EdgeImage, Hobject* RegionResult, const Hlong MinAmplitude)

Herror T_close_edges(const Hobject Edges, const Hobject EdgeImage, Hobject* RegionResult, const Htuple MinAmplitude)

Herror close_edges(Hobject Edges, Hobject EdgeImage, Hobject* RegionResult, const HTuple& MinAmplitude)

HRegion HRegion::CloseEdges(const HImage& EdgeImage, const HTuple& MinAmplitude) const

HRegionArray HRegionArray::CloseEdges(const HImage& EdgeImage, const HTuple& MinAmplitude) const

void CloseEdges(const HObject& Edges, const HObject& EdgeImage, HObject* RegionResult, const HTuple& MinAmplitude)

HRegion HRegion::CloseEdges(const HImage& EdgeImage, Hlong MinAmplitude) const

void HOperatorSetX.CloseEdges(
[in] IHUntypedObjectX* Edges, [in] IHUntypedObjectX* EdgeImage, [out] IHUntypedObjectX*RegionResult, [in] VARIANT MinAmplitude)

IHRegionX* HRegionX.CloseEdges(
[in] IHImageX* EdgeImage, [in] Hlong MinAmplitude)

static void HOperatorSet.CloseEdges(HObject edges, HObject edgeImage, out HObject regionResult, HTuple minAmplitude)

HRegion HRegion.CloseEdges(HImage edgeImage, int minAmplitude)

Beschreibung

close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges schließt die von einem Kantendetektor gelieferten Kanten zu Konturen. Dabei wird iterativ von jedem Kantenpunkt aus nach den beiden Nachbarpunkten mit stärkster Amplitude (i.e. größtem Gradienten) gesucht und diese beiden Punkte zur Kantenregion hinzugenommen, falls ihre Amplituden größer oder gleich der übergebenen Mindestamplitude sind. Als Eingabe erwartet die Routine also neben den Kanten (EdgesEdgesEdgesEdgesEdgesedges) auch ein Amplitudenbild (EdgeImageEdgeImageEdgeImageEdgeImageEdgeImageedgeImage), wie es beispielsweise die Routinen edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage oder sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp als Ergebnis liefern. Nicht berücksichtigt wird hingegen die Richtung der Konturen. Sie können daher in Gebieten mit Plateaus im Amplitudenbild zu „schwingen“ beginnen.

Parallelisierung

Parameter

EdgesEdgesEdgesEdgesEdgesedges (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Region mit ein Pixel breiten Kanten.

EdgeImageEdgeImageEdgeImageEdgeImageEdgeImageedgeImage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2 / int4)

Kanten-Amplitudenbild.

RegionResultRegionResultRegionResultRegionResultRegionResultregionResult (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Ausgaberegionen (geschlossene Kanten).

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

Mindestamplitude für Kanten.

Defaultwert: 16

Wertevorschläge: 5, 8, 10, 12, 16, 20, 25, 30, 40, 50

Typischer Wertebereich: 1 ≤ MinAmplitude MinAmplitude MinAmplitude MinAmplitude MinAmplitude minAmplitude ≤ 255

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Restriktion: MinAmplitude >= 0

Beispiel (C)

sobel_amp(Image,&EdgeAmp,"sum_abs",5);
threshold(EdgeAmp,&EdgeRegion,40.0,255.0);
skeleton(EdgeRegion,&ThinEdge);
close_edges(ThinEdge,EdgeAmp,&CloseEdges,15);
skeleton(CloseEdges,&ThinCloseEdges);

Ergebnis

Sind die Parameterwerte korrekt, dann liefert close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, thresholdthresholdThresholdthresholdThresholdThreshold, skeletonskeletonSkeletonskeletonSkeletonSkeleton

Nachfolger

skeletonskeletonSkeletonskeletonSkeletonSkeleton

Alternativen

close_edges_lengthclose_edges_lengthCloseEdgesLengthclose_edges_lengthCloseEdgesLengthCloseEdgesLength, dilation1dilation1Dilation1dilation1Dilation1Dilation1, closingclosingClosingclosingClosingClosing

Siehe auch

gray_skeletongray_skeletonGraySkeletongray_skeletonGraySkeletonGraySkeleton

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren