KlassenKlassen | | Operatoren

info_edgesT_info_edgesInfoEdgesInfoEdges (Operator)

Name

info_edgesT_info_edgesInfoEdgesInfoEdges — Abschätzung des Einzugsgebiets 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 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 eine Abschätzung des Einzugsgebiets 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 (die anderen verwenden rekursive Filter). Im Falle der Canny-Filter werden daher zusätzlich zur Filtergröße auch die Filterkoeffizienten der eindimensionalen Impulsantworten in CoeffsCoeffsCoeffsCoeffscoeffs zurückgeliefert.

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.

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


KlassenKlassen | | Operatoren