KlassenKlassenKlassenKlassen | | | | Operatoren

info_edgesT_info_edgesInfoEdgesinfo_edgesInfoEdgesInfoEdges (Operator)

Name

info_edgesT_info_edgesInfoEdgesinfo_edgesInfoEdgesInfoEdges — Abschätzung des Einzugsgebiets der Filter aus edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage.

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)

Herror 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)

void HOperatorSetX.InfoEdges(
[in] VARIANT Filter, [in] VARIANT Mode, [in] VARIANT Alpha, [out] VARIANT* Size, [out] VARIANT* Coeffs)

Hlong HMiscX.InfoEdges(
[in] BSTR Filter, [in] BSTR Mode, [in] double Alpha, [out] VARIANT* 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_edgesInfoEdgesinfo_edgesInfoEdgesInfoEdges liefert eine Abschätzung des Einzugsgebiets der in der Routine edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage 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_imageEdgesImageedges_imageEdgesImageEdgesImage). Es werden sieben Kantenoperatoren unterstützt (Parameter FilterFilterFilterFilterFilterfilter):

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

Über den Parameter ModeModeModeModeModemode ('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 CoeffsCoeffsCoeffsCoeffsCoeffscoeffs zurückgeliefert.

Parallelisierung

Parameter

FilterFilterFilterFilterFilterfilter (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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 HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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 HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 alpha ≤ 50.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Alpha > 0.0

SizeSizeSizeSizeSizesize (output_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Größe des Einzugsgebietes des Filters in Pixeln.

CoeffsCoeffsCoeffsCoeffsCoeffscoeffs (output_control)  integer-array HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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)

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_edgesInfoEdgesinfo_edgesInfoEdgesInfoEdges 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, thresholdthresholdThresholdthresholdThresholdThreshold, skeletonskeletonSkeletonskeletonSkeletonSkeleton

Siehe auch

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren