expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayexpand_domain_gray (Operator)

Name

expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayexpand_domain_gray — 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)

def expand_domain_gray(input_image: HObject, expansion_range: int) -> HObject

Beschreibung

expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGrayexpand_domain_gray expandiert die Grauwerte am Rand des Definitionsbereiches nach außen. Das Maß dieser Expansion wird durch den Parameter ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRangeexpansion_range 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_grayExpandDomainGrayExpandDomainGrayExpandDomainGrayexpand_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_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGrayexpand_domain_gray ein reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain oder change_domainchange_domainChangeDomainChangeDomainChangeDomainchange_domain auszuführen und anschließend die Filteroperation auf den reduzierten Definitionsbereich anzuwenden. Der Wert für ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRangeexpansion_range sollte so gewählt werden, dass die ganze Region, inklusive ihrer Dilatation durch die Filtermaske, initialisierte Werte hat. Üblicherweise führt dies zu Werten für ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRangeexpansion_range von halber Filterlänge oder mehr. In Verwendung mit dem Filter mean_imagemean_imageMeanImageMeanImageMeanImagemean_image auf Bildern des Typs real wird empfohlen, den Wert für ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRangeexpansion_range wie im unten gegebenen Beispiel zu bestimmen. Zur Geschwindigkeitsoptimierung verwendet dieser Filter die Werte der Pixel im kleinsten die dilatierte Region umschließenden Rechteck.

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

InputImageInputImageInputImageInputImageinputImageinput_image (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / int1 / int2 / uint2 / int4 / real)

Eingabebild mit zu erweiterndem Definitionsbereich.

ExpandedImageExpandedImageExpandedImageExpandedImageexpandedImageexpanded_image (output_object)  image(-array) objectHImageHObjectHImageHobject * (byte / int1 / int2 / uint2 / int4 / real)

Ausgabebild mit neu berechneten Grauwerten im erweiterten Definitionsbereich.

ExpansionRangeExpansionRangeExpansionRangeExpansionRangeexpansionRangeexpansion_range (input_control)  integer HTupleintHTupleHtuple (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:
MaskSize := 31
mean_image(Fabrik_Label,Label_Mean_normal,MaskSize, MaskSize)
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:
get_domain (Fabrik_Label, Domain)
expand_domain_gray (Fabrik_Label, Expanded_Fabrik_Label, MaskSize)
get_domain (Expanded_Fabrik_Label, Expanded_Domain)
shape_trans (Expanded_Domain, RegionRect, 'rectangle1')
difference (RegionRect, Expanded_Domain, Region_Difference)
overpaint_region (Expanded_Fabrik_Label, Region_Difference, 0, 'fill')
reduce_domain (Expanded_Fabrik_Label, Domain, Reduced_Expanded_Fabrik_Label)
mean_image (Reduced_Expanded_Fabrik_Label, Label_Mean_Expanded,\
MaskSize, MaskSize)
dyn_threshold(Fabrik_Label,Label_Mean_Expanded,\
Characters_expanded,10,'dark')
dev_display(Fabrik)
dev_display(Characters_expanded)

Komplexität

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

Ergebnis

expand_domain_grayexpand_domain_grayExpandDomainGrayExpandDomainGrayExpandDomainGrayexpand_domain_gray liefert den Wert TRUE, falls die Parameter korrekt sind. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

Nachfolger

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold

Siehe auch

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image

Modul

Foundation