KlassenKlassenKlassenKlassen | | | | Operatoren

expand_domain_grayexpand_domain_grayExpandDomainGrayexpand_domain_grayExpandDomainGrayExpandDomainGray (Operator)

Name

expand_domain_grayexpand_domain_grayExpandDomainGrayexpand_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)

Herror expand_domain_gray(Hobject InputImage, Hobject* ExpandedImage, const HTuple& ExpansionRange)

HImage HImage::ExpandDomainGray(const HTuple& ExpansionRange) const

HImageArray HImageArray::ExpandDomainGray(const HTuple& ExpansionRange) const

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

HImage HImage::ExpandDomainGray(Hlong ExpansionRange) const

void HOperatorSetX.ExpandDomainGray(
[in] IHUntypedObjectX* InputImage, [out] IHUntypedObjectX*ExpandedImage, [in] VARIANT ExpansionRange)

IHImageX* HImageX.ExpandDomainGray([in] Hlong ExpansionRange)

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

HImage HImage.ExpandDomainGray(int expansionRange)

Beschreibung

expand_domain_grayexpand_domain_grayExpandDomainGrayexpand_domain_grayExpandDomainGrayExpandDomainGray expandiert die Grauwerte am Rand des Definitionsbereiches nach außen. Das Maß dieser Expansion wird durch den Parameter ExpansionRangeExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange 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_grayExpandDomainGrayexpand_domain_grayExpandDomainGrayExpandDomainGray 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_grayExpandDomainGrayexpand_domain_grayExpandDomainGrayExpandDomainGray ein reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain oder change_domainchange_domainChangeDomainchange_domainChangeDomainChangeDomain auszuführen und anschließend die Filteroperation auf den reduzierten Definitionsbereich anzuwenden. Als Wert für ExpansionRangeExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange 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.

Parallelisierung

Parameter

InputImageInputImageInputImageInputImageInputImageinputImage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / int1 / int2 / uint2 / int4 / real)

Eingabebild mit zu erweiterndem Definitionsbereich.

ExpandedImageExpandedImageExpandedImageExpandedImageExpandedImageexpandedImage (output_object)  image(-array) objectHImageHImageHImageHImageXHobject * (byte / int1 / int2 / uint2 / int4 / real)

Ausgabebild mit neu berechneten Grauwerten im erweiterten Definitionsbereich.

ExpansionRangeExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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)*ExpansionRangeExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRange.

Ergebnis

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

Vorgänger

reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain

Nachfolger

reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, mean_imagemean_imageMeanImagemean_imageMeanImageMeanImage, dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold

Siehe auch

reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, mean_imagemean_imageMeanImagemean_imageMeanImageMeanImage

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren