expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGray (Operator)

Name

expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGray — Expansion des Definitionsbereiches eines Bildes inklusive der Grauwerte.

Signatur

expand_domain_gray(InputImage : ExpandedImage : ExpansionRange : )

Herror expand_domain_gray(const Hobject InputImage, Hobject* ExpandedImage, const Hlong ExpansionRange)

Herror T_expand_domain_gray(const Hobject InputImage, Hobject* ExpandedImage, const Htuple ExpansionRange)

void ExpandDomainGray(const HObject& InputImage, HObject* ExpandedImage, const HTuple& ExpansionRange)

HImage HImage::ExpandDomainGray(Hlong ExpansionRange) const

static void HOperatorSet.ExpandDomainGray(HObject inputImage, out HObject expandedImage, HTuple expansionRange)

HImage HImage.ExpandDomainGray(int expansionRange)

Beschreibung

expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGray expandiert die Grauwerte am Rand des Definitionsbereiches nach außen. Das Maß dieser Expansion wird durch den Parameter ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange 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_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGray 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_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGray ein reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain oder change_domainchange_domainChangeDomainChangeDomainChangeDomain auszuführen und anschließend die Filteroperation auf den reduzierten Definitionsbereich anzuwenden. Als Wert für ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange sollte die Hälfte der Filterbreite bzw. -höhe gewählt werden.

Achtung

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.

Ausführungsinformationen

Parameter

InputImageInputImageInputImageInputImageinputImage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / int1 / int2 / uint2 / int4 / real)

Eingabebild mit zu erweiterndem Definitionsbereich.

ExpandedImageExpandedImageExpandedImageExpandedImageexpandedImage (output_object)  image(-array) objectHImageHImageHobject * (byte / int1 / int2 / uint2 / int4 / real)

Ausgabebild mit neu berechneten Grauwerten im erweiterten Definitionsbereich.

ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Beispiel (HDevelop)

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

Komplexität

Sei L der Umfang des Definitionsbereiches. Die Laufzeit-Komplexität ist dann näherungsweise O(L)*ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange.

Ergebnis

expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGray liefert den Wert 2 (H_MSG_TRUE), falls die Parameter korrekt sind. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain

Nachfolger

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain, mean_imagemean_imageMeanImageMeanImageMeanImage, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold

Siehe auch

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain, mean_imagemean_imageMeanImageMeanImageMeanImage

Modul

Foundation