info_edgesT_info_edgesInfoEdgesInfoEdges (Operator)

Name

info_edgesT_info_edgesInfoEdgesInfoEdges — Abfragen der Filterkoeffizienten der Filter aus edges_imageedges_imageEdgesImageEdgesImageEdgesImage.

Signatur

info_edges( : : Filter, Mode, Alpha : Size, Coeffs)

Herror T_info_edges(const Htuple Filter, const Htuple Mode, const Htuple Alpha, Htuple* Size, Htuple* Coeffs)

void InfoEdges(const HTuple& Filter, const HTuple& Mode, const HTuple& Alpha, HTuple* Size, HTuple* Coeffs)

static Hlong HMisc::InfoEdges(const HString& Filter, const HString& Mode, double Alpha, HTuple* Coeffs)

static Hlong HMisc::InfoEdges(const char* Filter, const char* Mode, double Alpha, HTuple* Coeffs)

static Hlong HMisc::InfoEdges(const wchar_t* Filter, const wchar_t* Mode, double Alpha, HTuple* Coeffs)   (Nur Windows)

static void HOperatorSet.InfoEdges(HTuple filter, HTuple mode, HTuple alpha, out HTuple size, out HTuple coeffs)

static int HMisc.InfoEdges(string filter, string mode, double alpha, out HTuple coeffs)

Beschreibung

info_edgesinfo_edgesInfoEdgesInfoEdgesInfoEdges liefert die Filterkoeffizienten CoeffsCoeffsCoeffsCoeffscoeffs und eine Abschätzung des Einzugsgebiets SizeSizeSizeSizesize der in der Routine edges_imageedges_imageEdgesImageEdgesImageEdgesImage verwendeten Filter. Dazu werden die zugrundeliegenden kontinuierlichen Impulsantworten der Filter abgetastet, bis ein Filterkoeffizient kleiner als fünf Prozent des Maximalkoeffizienten ist. AlphaAlphaAlphaAlphaalpha ist der Filterparameter (siehe edges_imageedges_imageEdgesImageEdgesImageEdgesImage). Es werden sieben Kantenoperatoren unterstützt (Parameter FilterFilterFilterFilterfilter):

'deriche1', 'lanser1', 'deriche2', 'lanser2', 'shen', 'mshen' und 'canny'.

Über den Parameter ModeModeModeModemode ('edge'/'smooth') wird festgelegt, ob der entsprechende Kanten- oder Glättungsfilter gemeint ist.

Der Canny-Operator (der sich auf die Gaußfunktion abstützt) wurde dabei konventionell mittels Filtermasken implementiert. Im Falle der Canny-Filter werden daher die Filterkoeffizienten der eindimensionalen Impulsantworten in CoeffsCoeffsCoeffsCoeffscoeffs zurückgeliefert. Alle anderen FilterFilterFilterFilterfilter sind rekursiv implementiert. Hierbei werden die Koeffizienten CoeffsCoeffsCoeffsCoeffscoeffs einer entsprechenden nicht-rekursiven Implementierung des Filters zurückgegeben.

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

FilterFilterFilterFilterfilter (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Name des Kanten-Operators.

Defaultwert: 'lanser2' "lanser2" "lanser2" "lanser2" "lanser2"

Werteliste: 'canny'"canny""canny""canny""canny", 'deriche1'"deriche1""deriche1""deriche1""deriche1", 'deriche2'"deriche2""deriche2""deriche2""deriche2", 'lanser1'"lanser1""lanser1""lanser1""lanser1", 'lanser2'"lanser2""lanser2""lanser2""lanser2", 'mshen'"mshen""mshen""mshen""mshen", 'shen'"shen""shen""shen""shen"

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

1D-Kantenfilter ('edge') oder 1D-Glättungsfilter ('smooth').

Defaultwert: 'edge' "edge" "edge" "edge" "edge"

Werteliste: 'edge'"edge""edge""edge""edge", 'smooth'"smooth""smooth""smooth""smooth"

AlphaAlphaAlphaAlphaalpha (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Filterparameter: kleine Werte bewirken starke Glättung, also auch weniger Bilddetails (bei canny umgekehrt).

Defaultwert: 0.5

Typischer Wertebereich: 0.2 ≤ Alpha Alpha Alpha Alpha alpha ≤ 50.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Alpha > 0.0

SizeSizeSizeSizesize (output_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Größe des Einzugsgebietes des Filters in Pixeln.

CoeffsCoeffsCoeffsCoeffscoeffs (output_control)  integer-array HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Falls Cannyfilter: Koeffizienten der „positiven“ Hälfte der 1D-Impulsantwort. Alle anderen: Koeffizienten einer entsprechenden nicht-rekursiven Implementierung des Filters.

Beispiel (HDevelop)

read_image(Image,'fabrik')
info_edges('lanser2','edge',0.5,Size,Coeffs)
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)

Beispiel (C)

read_image(&Image,"fabrik");
info_edges("lanser2","edge",0.5,Size,Coeffs);
edges_image(Image,&Amp,&Dir,"lanser2",0.5,"none",-1,-1);
hysteresis_threshold(Amp,&Margin,20,30,30);

Beispiel (HDevelop)

read_image(Image,'fabrik')
info_edges('lanser2','edge',0.5,Size,Coeffs)
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)

Beispiel (HDevelop)

read_image(Image,'fabrik')
info_edges('lanser2','edge',0.5,Size,Coeffs)
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)

Beispiel (HDevelop)

read_image(Image,'fabrik')
info_edges('lanser2','edge',0.5,Size,Coeffs)
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert info_edgesinfo_edgesInfoEdgesInfoEdgesInfoEdges 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.

Nachfolger

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, thresholdthresholdThresholdThresholdThreshold, skeletonskeletonSkeletonSkeletonSkeleton

Siehe auch

edges_imageedges_imageEdgesImageEdgesImageEdgesImage

Modul

Foundation