expand_domain_gray
— Expansion des Definitionsbereiches eines Bildes inklusive der Grauwerte.
expand_domain_gray(InputImage : ExpandedImage : ExpansionRange : )
expand_domain_gray
expandiert die Grauwerte am Rand des
Definitionsbereiches nach außen. Das Maß dieser Expansion wird
durch den Parameter ExpansionRange
festgelegt, der den
Expansionsradius in Pixel beschreibt. Alle Filter in HALCON --- die
stets auf den Definitionsbereich des Bildes angewendet werden ---
beziehen abhängig von ihrer Filterweite auch eine bestimmte Anzahl
von Grauwerten außerhalb des Definitionsbereiches mit in ihre
Berechnung ein. Dies kann im Randbereich des Definitionsbereiches
zu unerwünschten Effekten führen. Dieser Nachteil macht sich vor
allem dann bemerkbar, wenn sich Vordergrund (Definitionsbereich) und
Hintergrund des Bildes in ihrer Helligkeit stark voneinander
unterscheiden. In diesem Fall kann es z.B. bei Anwendung eines
Glättungsfilters zu unerwünschten Aufhellungen oder Abdunkelungen
im Randbereich des Definitionsbereiches kommen. Um dies zu
vermeiden, wird durch expand_domain_gray
der
Definitionsbereich im Vorfeld künstlich erweitert, indem die
Grauwerte seiner Randpixel nach außen fortgesetzt werden. Mit der
Expansion der Grauwerte wird auch der Definitionsbereich
entsprechend erweitert, um die neu besetzten Pixel zu kennzeichnen.
Daher ist es in vielen Fällen sinnvoll, nach
expand_domain_gray
ein reduce_domain
oder
change_domain
auszuführen und anschließend die
Filteroperation auf den reduzierten Definitionsbereich anzuwenden.
Als Wert für ExpansionRange
sollte die Hälfte der
Filterbreite bzw. -höhe gewählt werden.
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.
InputImage
(input_object) (multichannel-)image(-array) →
object (byte / int1 / int2 / uint2 / int4 / real)
Eingabebild mit zu erweiterndem Definitionsbereich.
ExpandedImage
(output_object) image(-array) →
object (byte / int1 / int2 / uint2 / int4 / real)
Ausgabebild mit neu berechneten Grauwerten im erweiterten Definitionsbereich.
ExpansionRange
(input_control) integer →
(integer)
Radius der Grauwertexpansion in Pixel.
Defaultwert: 2
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16
Restriktion: ExpansionRange >= 1
read_image(Fabrik, 'fabrik') gen_rectangle2(Rectangle_Label,243,320,-1.55,62,28) reduce_domain(Fabrik, Rectangle_Label, Fabrik_Label) * Character extraction without gray value expansion: mean_image(Fabrik_Label,Label_Mean_normal,31,31) dyn_threshold(Fabrik_Label,Label_Mean_normal,Characters_normal,10,'dark') dev_display(Fabrik) dev_display(Characters_normal) * The characters in the border region are not extracted ! stop() * Character extraction with gray value expansion: expand_domain_gray(Fabrik_Label, Label_expanded,15) reduce_domain(Label_expanded,Rectangle_Label, Label_expanded_reduced) mean_image(Label_expanded_reduced,Label_Mean_expanded,31,31) dyn_threshold(Fabrik_Label,Label_Mean_expanded,\ Characters_expanded,10,'dark') dev_display(Fabrik) dev_display(Characters_expanded) * Now, even in the border region the characters are recognized
Sei L der Umfang des Definitionsbereiches. Die
Laufzeit-Komplexität ist dann näherungsweise
O(L)*ExpansionRange
.
expand_domain_gray
liefert den Wert 2 (H_MSG_TRUE), falls die
Parameter korrekt sind. Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
reduce_domain
,
mean_image
,
dyn_threshold
Foundation