close_edgesclose_edgesCloseEdgesCloseEdgesclose_edges (Operator)

Name

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

def close_edges(edges: HObject, edge_image: HObject, min_amplitude: int) -> HObject

Beschreibung

close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges 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 (EdgeImageEdgeImageEdgeImageEdgeImageedgeImageedge_image), wie es beispielsweise die Routinen edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image oder sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp 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

EdgesEdgesEdgesEdgesedgesedges (input_object)  region(-array) objectHRegionHObjectHRegionHobject

Region mit ein Pixel breiten Kanten.

EdgeImageEdgeImageEdgeImageEdgeImageedgeImageedge_image (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2 / int4)

Kanten-Amplitudenbild.

RegionResultRegionResultRegionResultRegionResultregionResultregion_result (output_object)  region(-array) objectHRegionHObjectHRegionHobject *

Ausgaberegionen (geschlossene Kanten).

MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude (input_control)  integer HTupleintHTupleHtuple (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 min_amplitude ≤ 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_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges den Wert 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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, thresholdthresholdThresholdThresholdThresholdthreshold, skeletonskeletonSkeletonSkeletonSkeletonskeleton

Nachfolger

skeletonskeletonSkeletonSkeletonSkeletonskeleton

Alternativen

close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthCloseEdgesLengthclose_edges_length, dilation1dilation1Dilation1Dilation1Dilation1dilation1, closingclosingClosingClosingClosingclosing

Siehe auch

gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeletongray_skeleton

Modul

Foundation