edges_color_sub_pix
— Subpixel-genaue Farbkantendetektion mit Deriche-, Shen- oder Canny-Filtern.
edges_color_sub_pix
extrahiert subpixel-genaue Farbkanten
aus dem Eingabebild Image
. Die Definition von Farbkanten
ist in der Beschreibung von edges_color
erläutert. Es
stehen dieselben Kantenfilter wie bei edges_color
zur
Verfügung: 'canny' , 'deriche1' ,
'deriche2' und 'shen' . Zusätzlich steht noch ein
schneller Sobel-Filter mit 'sobel_fast' zur Verfügung. Die
Filter werden durch den Paremeter Filter
spezifiziert.
Die „Filterbreite“ (Stärke der Glättung) Alpha
ist frei
wählbar. Für eine ausführliche Beschreibung dieses Parameters
siehe edges_color
. Bei Filter
=
'sobel_fast' wird dieser Parameter ignoriert.
Die extrahierten Kanten werden als subpixel-genaue XLD-Konturen in
Edges
zurückgeliefert. Für alle Kantenoperatoren außer
'sobel_fast' werden für jeden Kantenpunkt die folgenden
Attribute definiert (Für weitere Informationen siehe
get_contour_attrib_xld
):
Gibt die Richtung der Kante (nicht der Kontur), berechnet aus den Grauwertgradienten in Spalten- und Zeilenrichtung, im Bogenmaß an. Die Winkel sind bezüglich der Zeilenachse gegen den Uhrzeigersinn gegeben.
Richtung der Normalenvektoren der Kontur (so orientiert, dass die Normalenvektoren auf die rechte Seite der Kontur in Durchlaufrichtung der Kontur zeigen; die Winkel sind bzgl. der Zeilenachse des Bildes im Bogenmaß angegeben).
Die Amplitude der Kante.
edges_color_sub_pix
verknüpft die einzelnen Kantenpunkte
mit einem Hysterese-Schwellenwert-artigen Verfahren zu Kanten, wie
es auch in edges_sub_pix
und lines_gauss
verwendet
wird. Dabei werden Punkte, deren Amplitude größer als
High
ist, sofort als sichere Kantenpunkte akzeptiert.
Punkte, deren Amplitude kleiner als Low
ist, werden sofort
verworfen. Alle Punkte, die eine zweite Amplitude zwischen diesen
zwei Werten besitzen, werden akzeptiert, wenn sie durch einen Pfad
mit sicheren Punkten verbunden sind (siehe lines_gauss
und
hysteresis_threshold
).
Da Kantenextraktoren oftmals bestimmte Kreuzungspunkte nicht
extrahieren können, kann durch Anhängen von '_junctions'
an die oben beschriebenen Werte von Filter
versucht werden,
diese mit anderen Mitteln zu extrahieren. Dieser Modus ist analog
zu dem bei edges_sub_pix
und lines_gauss
verfügbaren Modus zur Vervollständigung von Kreuzungspunkten.
Der Kantenoperator 'sobel_fast' hat dieselbe Semantik wie alle anderen Kantenoperatoren, basiert intern aber auf einer stark vereinfachten Variante der einzelnen Schritte (Hysterese-Schwellenwert-Operation, Verknüpfung der Kantenpunkte, Extraktion der Subpixel-Position). Daher können die Ergebnisse von 'sobel_fast' in manchen Fällen eine geringere Genauigkeit als die Ergebnisse der anderen Filter aufweisen und andere Kantenteile selektieren.
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.
Image
(input_object) (multichannel-)image →
object (byte / uint2)
Eingabebild.
Edges
(output_object) xld_cont-array →
object
Extrahierte Kanten.
Filter
(input_control) string →
(string)
Gewünschter Kanten-Operator.
Defaultwert: 'canny'
Werteliste: 'canny' , 'canny_junctions' , 'deriche1' , 'deriche1_junctions' , 'deriche2' , 'deriche2_junctions' , 'shen' , 'shen_junctions' , 'sobel_fast'
Alpha
(input_control) real →
(real)
Filterparameter: kleine Werte bewirken starke Glättung, also auch weniger Bilddetails (bei 'canny' umgekehrt).
Defaultwert: 1.0
Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9, 1.0, 1.1, 1.2, 1.5, 2.0, 2.5, 3.0
Typischer Wertebereich: 0.7
≤
Alpha
≤
50.0
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.1
Restriktion: Alpha > 0.0
Low
(input_control) number →
(real / integer)
Untere Schwelle für Hysterese-Schwellenwertoperation.
Defaultwert: 20
Wertevorschläge: 5, 10, 15, 20, 25, 30, 40
Typischer Wertebereich: 1
≤
Low
Minimale Schrittweite: 1
Empfohlene Schrittweite: 5
Restriktion: Low > 0
High
(input_control) number →
(real / integer)
Obere Schwelle für Hysterese-Schwellenwertoperation.
Defaultwert: 40
Wertevorschläge: 10, 15, 20, 25, 30, 40, 50, 60, 70
Typischer Wertebereich: 1
≤
High
Minimale Schrittweite: 1
Empfohlene Schrittweite: 5
Restriktion: High > 0 && High >= Low
Der Bedarf an temporären Speicher ist abhängig von der Höhe H der Region
von Image
.
Sind die Parameterwerte korrekt und tritt kein Fehler während der
Berechnung auf, liefert edges_color_sub_pix
den Wert 2 (H_MSG_TRUE).
Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden)
lässt sich mittels set_system('no_object_result',<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
edges_image
,
edges_sub_pix
,
info_edges
,
hysteresis_threshold
,
lines_gauss
,
lines_facet
C. Steger: „Subpixel-Precise Extraction of Lines and Edges“;
International Archives of Photogrammetry and Remote Sensing,
vol. XXXIII, part B3; pp. 141-156; 2000.
C. Steger: „Unbiased Extraction of Curvilinear Structures from 2D
and 3D Images“; Herbert Utz Verlag, München; 1998.
S. Di Zenzo: „A Note on the Gradient of a Multi-Image“; Computer
Vision, Graphics, and Image Processing, vol. 33; pp. 116-125;
1986.
Aldo Cumani: „Edge Detection in Multispectral Images“; Computer
Vision, Graphics, and Image Processing: Graphical Models and Image
Processing, vol. 53, no. 1; pp. 40-51; 1991.
J.Canny: „Finding Edges and Lines in Images“; Report, AI-TR-720;
M.I.T. Artificial Intelligence Lab., Cambridge; 1983.
J.Canny: „A Computational Approach to Edge Detection“; IEEE
Transactions on Pattern Analysis and Machine Intelligence; PAMI-8,
vol. 6; pp. 679-698; 1986.
R.Deriche: „Using Canny's Criteria to Derive a Recursively
Implemented Optimal Edge Detector“; International Journal of
Computer Vision; vol. 1, no. 2; pp. 167-187; 1987.
R.Deriche: „Fast Algorithms for Low-Level Vision“; IEEE
Transactions on Pattern Analysis and Machine Intelligence; PAMI-12,
no. 1; pp. 78-87; 1990.
J. Shen, S. Castan: „An Optimal Linear Operator for Step Edge
Detection“; Computer Vision, Graphics, and Image Processing:
Graphical Models and Image Processing, vol. 54, no. 2;
pp. 112-133; 1992.
2D Metrology