info_edgesT_info_edgesInfoEdgesInfoEdgesinfo_edges (Operator)

Name

info_edgesT_info_edgesInfoEdgesInfoEdgesinfo_edges — Abfragen der Filterkoeffizienten der Filter aus edges_imageedges_imageEdgesImageEdgesImageedges_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_edgesInfoEdgesInfoEdgesinfo_edges liefert die Filterkoeffizienten CoeffsCoeffsCoeffscoeffscoeffs und eine Abschätzung des Einzugsgebiets SizeSizeSizesizesize der in der Routine edges_imageedges_imageEdgesImageEdgesImageedges_image 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_imageEdgesImageEdgesImageedges_image). Es werden sieben Kantenoperatoren unterstützt (Parameter FilterFilterFilterfilterfilter):

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

Über den Parameter ModeModeModemodemode ('edge'"edge""edge""edge""edge"/'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 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 HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Name des Kanten-Operators.

Default: '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 HTuplestrHTupleHtuple (string) (string) (HString) (char*)

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

Default: 'edge' "edge" "edge" "edge" "edge"

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

AlphaAlphaAlphaalphaalpha (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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

Default: 0.5

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Alpha > 0.0

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

Größe des Einzugsgebietes des Filters in Pixeln.

CoeffsCoeffsCoeffscoeffscoeffs (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)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert info_edgesinfo_edgesInfoEdgesInfoEdgesinfo_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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

edges_imageedges_imageEdgesImageEdgesImageedges_image, thresholdthresholdThresholdThresholdthreshold, skeletonskeletonSkeletonSkeletonskeleton

Siehe auch

edges_imageedges_imageEdgesImageEdgesImageedges_image

Modul

Foundation