Name
info_edges T_info_edges InfoEdges info_edges InfoEdges InfoEdges — Abfragen der Filterkoeffizienten der Filter aus edges_image edges_image EdgesImage edges_image EdgesImage EdgesImage .
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_edges info_edges InfoEdges info_edges InfoEdges InfoEdges liefert die Filterkoeffizienten Coeffs Coeffs Coeffs Coeffs Coeffs coeffs und
eine Abschätzung des Einzugsgebiets Size Size Size Size Size size der in der Routine
edges_image edges_image EdgesImage edges_image EdgesImage EdgesImage verwendeten Filter.
Dazu werden die zugrundeliegenden kontinuierlichen Impulsantworten der
Filter abgetastet, bis ein Filterkoeffizient kleiner als fünf
Prozent des Maximalkoeffizienten ist. Alpha Alpha Alpha Alpha Alpha alpha ist der
Filterparameter (siehe edges_image edges_image EdgesImage edges_image EdgesImage EdgesImage ). Es werden sieben
Kantenoperatoren unterstützt (Parameter Filter Filter Filter Filter Filter filter ):
'deriche1', 'lanser1', 'deriche2', 'lanser2',
'shen', 'mshen' und 'canny'.
Über den Parameter Mode Mode Mode Mode Mode mode ('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. Im Falle der Canny-Filter werden daher
die Filterkoeffizienten der eindimensionalen Impulsantworten
in Coeffs Coeffs Coeffs Coeffs Coeffs coeffs
zurückgeliefert. Alle anderen Filter Filter Filter Filter Filter filter sind rekursiv implementiert.
Hierbei werden die Koeffizienten Coeffs Coeffs Coeffs Coeffs Coeffs coeffs einer entsprechenden
nicht-rekursiven Implementierung des Filters zurückgegeben.
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.
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.
Alle anderen: Koeffizienten einer entsprechenden
nicht-rekursiven Implementierung des Filters.
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_edges info_edges InfoEdges info_edges InfoEdges InfoEdges
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_image edges_image EdgesImage edges_image EdgesImage EdgesImage ,
threshold threshold Threshold threshold Threshold Threshold ,
skeleton skeleton Skeleton skeleton Skeleton Skeleton
edges_image edges_image EdgesImage edges_image EdgesImage EdgesImage
Foundation