Name
info_edgesT_info_edgesInfoEdgesinfo_edgesInfoEdgesInfoEdges — Abschätzung des Einzugsgebiets der Filter aus edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage.
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)
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 f(n)
mit n >= 0 in CoeffsCoeffsCoeffsCoeffsCoeffscoeffs
zurückgeliefert.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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"
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"
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
Größe des Einzugsgebietes des Filters in Pixeln.
Falls Cannyfilter: Koeffizienten der „positiven“
Hälfte der 1D-Impulsantwort.
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)
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);
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)
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)
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)
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)
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.
edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage,
thresholdthresholdThresholdthresholdThresholdThreshold,
skeletonskeletonSkeletonskeletonSkeletonSkeleton
edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage
Foundation