info_edgesT_info_edgesInfoEdgesInfoEdgesinfo_edges (Operator)

Name

info_edgesT_info_edgesInfoEdgesInfoEdgesinfo_edges — Abfragen der Filterkoeffizienten der Filter aus edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image.

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)

def info_edges(filter: str, mode: str, alpha: float) -> Tuple[int, Sequence[int]]

Beschreibung

info_edgesinfo_edgesInfoEdgesInfoEdgesInfoEdgesinfo_edges liefert die Filterkoeffizienten CoeffsCoeffsCoeffsCoeffscoeffscoeffs und eine Abschätzung des Einzugsgebiets SizeSizeSizeSizesizesize der in der Routine edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image verwendeten Filter. Dazu werden die zugrundeliegenden kontinuierlichen Impulsantworten der Filter abgetastet, bis ein Filterkoeffizient kleiner als fünf Prozent des Maximalkoeffizienten ist. AlphaAlphaAlphaAlphaalphaalpha ist der Filterparameter (siehe edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image). Es werden sieben Kantenoperatoren unterstützt (Parameter FilterFilterFilterFilterfilterfilter):

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

Über den Parameter ModeModeModeModemodemode ('edge'"edge""edge""edge""edge""edge"/'smooth'"smooth""smooth""smooth""smooth""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 CoeffsCoeffsCoeffsCoeffscoeffscoeffs zurückgeliefert. Alle anderen FilterFilterFilterFilterfilterfilter sind rekursiv implementiert. Hierbei werden die Koeffizienten CoeffsCoeffsCoeffsCoeffscoeffscoeffs 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

FilterFilterFilterFilterfilterfilter (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Name des Kanten-Operators.

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

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

ModeModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

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

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

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

AlphaAlphaAlphaAlphaalphaalpha (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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

Defaultwert: 0.5

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Alpha > 0.0

SizeSizeSizeSizesizesize (output_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Größe des Einzugsgebietes des Filters in Pixeln.

CoeffsCoeffsCoeffsCoeffscoeffscoeffs (output_control)  integer-array HTupleSequence[int]HTupleHtuple (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_edgesInfoEdgesInfoEdgesInfoEdgesinfo_edges 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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, thresholdthresholdThresholdThresholdThresholdthreshold, skeletonskeletonSkeletonSkeletonSkeletonskeleton

Siehe auch

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image

Modul

Foundation