KlassenKlassen | | Operatoren

close_edgesclose_edgesCloseEdgesCloseEdges (Operator)

Name

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

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

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

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

HRegion HRegion.CloseEdges(HImage edgeImage, int minAmplitude)

Beschreibung

close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdges 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 (EdgesEdgesEdgesEdgesedges) auch ein Amplitudenbild (EdgeImageEdgeImageEdgeImageEdgeImageedgeImage), wie es beispielsweise die Routinen edges_imageedges_imageEdgesImageEdgesImageEdgesImage oder sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp 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.

Achtung

Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.

Ausführungsinformationen

Parameter

EdgesEdgesEdgesEdgesedges (input_object)  region(-array) objectHRegionHRegionHobject

Region mit ein Pixel breiten Kanten.

EdgeImageEdgeImageEdgeImageEdgeImageedgeImage (input_object)  singlechannelimage objectHImageHImageHobject (byte / uint2 / int4)

Kanten-Amplitudenbild.

RegionResultRegionResultRegionResultRegionResultregionResult (output_object)  region(-array) objectHRegionHRegionHobject *

Ausgaberegionen (geschlossene Kanten).

MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitude (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (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 ≤ 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_edgesCloseEdgesCloseEdgesCloseEdges 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>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp, thresholdthresholdThresholdThresholdThreshold, skeletonskeletonSkeletonSkeletonSkeleton

Nachfolger

skeletonskeletonSkeletonSkeletonSkeleton

Alternativen

close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthCloseEdgesLength, dilation1dilation1Dilation1Dilation1Dilation1, closingclosingClosingClosingClosing

Siehe auch

gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeleton

Modul

Foundation


KlassenKlassen | | Operatoren