KlassenKlassenKlassenKlassen | | | | Operatoren

find_2d_bar_codeT_find_2d_bar_codeFind2dBarCodefind_2d_bar_codeFind2dBarCodeFind2dBarCode (Operator)

Name

find_2d_bar_codeT_find_2d_bar_codeFind2dBarCodefind_2d_bar_codeFind2dBarCodeFind2dBarCode — Suche nach Regionen, die einen 2D-Barcode enthalten könnten.

Warnung

find_2d_bar_codefind_2d_bar_codeFind2dBarCodefind_2d_bar_codeFind2dBarCodeFind2dBarCode ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt. Neue Applikationen sollten stattdessen die Funktionalität im Kapitel Identifizierung / Datacode verwenden zum Lesen von 2D-Datacode-Symbologien verwenden (siehe create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel).

Signatur

find_2d_bar_code(Image : CodeRegion : BarCodeDescr, GenParamNames, GenParamValues : CodeRegDescr)

Herror T_find_2d_bar_code(const Hobject Image, Hobject* CodeRegion, const Htuple BarCodeDescr, const Htuple GenParamNames, const Htuple GenParamValues, Htuple* CodeRegDescr)

Herror find_2d_bar_code(Hobject Image, Hobject* CodeRegion, const HTuple& BarCodeDescr, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* CodeRegDescr)

HRegionArray HImage::Find2dBarCode(const HTuple& BarCodeDescr, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* CodeRegDescr) const

HRegionArray HBarCode2D::Find2dBarCode(const HImage& Image, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* CodeRegDescr) const

void Find2dBarCode(const HObject& Image, HObject* CodeRegion, const HTuple& BarCodeDescr, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* CodeRegDescr)

HRegion HImage::Find2dBarCode(const HTuple& BarCodeDescr, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* CodeRegDescr) const

HRegion HImage::Find2dBarCode(const HTuple& BarCodeDescr, const HString& GenParamNames, double GenParamValues, HTuple* CodeRegDescr) const

HRegion HImage::Find2dBarCode(const HTuple& BarCodeDescr, const char* GenParamNames, double GenParamValues, HTuple* CodeRegDescr) const

void HOperatorSetX.Find2dBarCode(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*CodeRegion, [in] VARIANT BarCodeDescr, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues, [out] VARIANT* CodeRegDescr)

IHRegionX* HBarCode2DX.Find2dBarCode(
[in] IHImageX* Image, [in] VARIANT BarCodeDescr, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues, [out] VARIANT* CodeRegDescr)

IHRegionX* HImageX.Find2dBarCode(
[in] VARIANT BarCodeDescr, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues, [out] VARIANT* CodeRegDescr)

static void HOperatorSet.Find2dBarCode(HObject image, out HObject codeRegion, HTuple barCodeDescr, HTuple genParamNames, HTuple genParamValues, out HTuple codeRegDescr)

HRegion HImage.Find2dBarCode(HTuple barCodeDescr, HTuple genParamNames, HTuple genParamValues, out HTuple codeRegDescr)

HRegion HImage.Find2dBarCode(HTuple barCodeDescr, string genParamNames, double genParamValues, out HTuple codeRegDescr)

Beschreibung

find_2d_bar_codefind_2d_bar_codeFind2dBarCodefind_2d_bar_codeFind2dBarCodeFind2dBarCode sucht im Bild ImageImageImageImageImageimage nach Regionen, die einen 2D-Barcode enthalten könnten. Vielversprechende Regionenkandidaten werden als Tupel von Regionen in CodeRegionCodeRegionCodeRegionCodeRegionCodeRegioncodeRegion zurückgeliefert. Ob eine solche Region tatsächlich einen lesbaren Barcode enthält, wird erst beim nachfolgenden Auslesen des Barcodes mit Hilfe des Operators get_2d_bar_codeget_2d_bar_codeGet2dBarCodeget_2d_bar_codeGet2dBarCodeGet2dBarCode (bzw. get_2d_bar_code_posget_2d_bar_code_posGet2dBarCodePosget_2d_bar_code_posGet2dBarCodePosGet2dBarCodePos) festgestellt.

Neben den Regionen, die mit hoher Wahrscheinlichkeit einen Barcode enthalten, reicht der Operator find_2d_bar_codefind_2d_bar_codeFind2dBarCodefind_2d_bar_codeFind2dBarCodeFind2dBarCode an den nachfolgenden Operator für die Datenextraktion (get_2d_bar_codeget_2d_bar_codeGet2dBarCodeget_2d_bar_codeGet2dBarCodeGet2dBarCode bzw. get_2d_bar_code_posget_2d_bar_code_posGet2dBarCodePosget_2d_bar_code_posGet2dBarCodePosGet2dBarCodePos) bestimmte interne Informationen über die Regionen weiter. Diese Informationen werden in einen Regionen-Descriptor geschrieben und im Parameter CodeRegDescrCodeRegDescrCodeRegDescrCodeRegDescrCodeRegDescrcodeRegDescr für die weitere Verarbeitung zurückgeliefert.

Für die Suche der Barcode-Region können in Abhängigkeit von der Druckmethode, mit der der Barcode erzeugt wurde ('mode'"mode""mode""mode""mode""mode"), unterschiedliche Verfahren zum Einsatz kommen. Diese Druckmethode ist zusammen mit anderen Informationen über den Barcode Bestandteil des Descriptors, der mit Hilfe des Operators gen_2d_bar_code_descrgen_2d_bar_code_descrGen2dBarCodeDescrgen_2d_bar_code_descrGen2dBarCodeDescrGen2dBarCodeDescr erzeugt und im Parameter BarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrbarCodeDescr übergeben wird.

Bei schwierigen Bedingungen können mit Hilfe der (optionalen) generischen Parameter GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames und GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues zusätzliche Parameter zur Steuerung der Suchmethode in Form von Bezeichner-Wert-Paaren übergeben.

Die Einflussnahme kann auf zwei Ebenen erfolgen: Eine Klasse von Parametern beschreibt die zu suchenden Barcode-Symbole und kann somit direkt aus dem zur Verfügung stehenden Bildmaterial abgeleitet werden. Führt ein Anpassen dieser Parameter nicht zum Erfolg, kann ein Teil der intern verwendeten Bildverarbeitungsoperatoren auch direkt beeinflusst werden. Da in Abhängigkeit von der Druckmethode unterschiedliche Bildverarbeitungsverfahren zum Einsatz kommen, stehen auch unterschiedliche Parameter zur Verfügung.

Allgemeine Parameter zur Beschreibung des Symbols:

   'module_width'   Mittlere Größe eines Moduls (einzelnes Datenelement)
                    in Pixeln.

                    Aus dieser Größe werden eine Reihe weiterer Parameter
                    abgeleitet. Ein Modul sollte in der Größenordnung von
                    4 bis 16 Pixeln liegen, um erfolgreich erkannt zu werden.

                    GenParamValues: > 0
                    default:        10

Bildverarbeitungsparameter für die Druckmethode 'printed'"printed""printed""printed""printed""printed":

   Die folgenden Parameter werden dazu verwendet, die Menge interessanter
   Regionen mit Hilfe bestimmter Regionenmerkmale einzuschränken.  Um die
   Verwendung eines Merkmals bei der Segmentation explizit zu verhindern,
   ist der entsprechende Parameter auf -1 zu setzen.

   'anisometry_max'   Maximale Anisometrie (vgl. eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity)
                      GenParamValues: > 1  (-1: Merkmal nicht verwenden)
                      default:        1.45

   'compactness_min'  Minimale Kompaktheit (vgl. compactnesscompactnessCompactnesscompactnessCompactnessCompactness)
                      GenParamValues: > 1  (-1: Merkmal nicht verwenden)
                      default:        1.2

   'compactness_max'  Maximale Kompaktheit
                      GenParamValues: >= 'compactness_min'"compactness_min""compactness_min""compactness_min""compactness_min""compactness_min"
                      (-1: Merkmal nicht verwenden)
                      default:        3.0

   'circularity_max'  Maximale Zirkularität (vgl. circularitycircularityCircularitycircularityCircularityCircularity)
                      GenParamValues: 0...1  (-1: Merkmal nicht verwenden)
                      default:        0.8

   'circularity_min'  Minimale Zirkularität
                      GenParamValues: <= 'circularity_max'"circularity_max""circularity_max""circularity_max""circularity_max""circularity_max"
                      (-1: Merkmal nicht verwenden)
                      default:        0.45

   'deviation_min'    Minimale Grauwert-Abweichung (vgl. intensityintensityIntensityintensityIntensityIntensity)
                      GenParamValues: > 1.0  (-1: Merkmal nicht verwenden)
                      default:        20.0

   Die folgenden Parameter werden automatisch aus der Modulgröße
   'module_width'"module_width""module_width""module_width""module_width""module_width" und Parametern des Code-Descriptors
   BarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrbarCodeDescr bestimmt (siehe Operator
   gen_2d_bar_code_descrgen_2d_bar_code_descrGen2dBarCodeDescrgen_2d_bar_code_descrGen2dBarCodeDescrGen2dBarCodeDescr). Sie können jedoch auch
   individuell angepasst werden.
   ACHTUNG: Wird die Modulgröße zusammen mit anderen Parametern gesetzt,
   muss sie VOR den anderen Parametern angegeben werden.

   'mean_mask_size_1' Maskengröße für die erste Bildmittelung.
                      GenParamValues: >= 3
                      default:        2.5*'module_width'"module_width""module_width""module_width""module_width""module_width"

   'mean_mask_size_2' Maskengröße für die zweite Bildmittelung.
                      GenParamValues: >= 5
                      default:        10.0*'module_width'"module_width""module_width""module_width""module_width""module_width"

   'area_min'         Minimale Symbolgröße in Pixel*Pixel.
                      GenParamValues: > 0
                      default:        0.25 * 'module_width'"module_width""module_width""module_width""module_width""module_width"^2 * 'columns_min'"columns_min""columns_min""columns_min""columns_min""columns_min" * 'rows_min'"rows_min""rows_min""rows_min""rows_min""rows_min"

   'area_max'         Maximale Symbolgröße in Pixel*Pixel.
                      GenParamValues: >= 'area_min'"area_min""area_min""area_min""area_min""area_min"
                      default:        4.00 * 'module_width'"module_width""module_width""module_width""module_width""module_width"^2 * 'columns_min'"columns_min""columns_min""columns_min""columns_min""columns_min" * 'rows_min'"rows_min""rows_min""rows_min""rows_min""rows_min"

   'closing_mask_rad' Maskengröße für closing_circleclosing_circleClosingCircleclosing_circleClosingCircleClosingCircle über der Testregion.
                      GenParamValues: > 0
                      default:        'module_width'"module_width""module_width""module_width""module_width""module_width"

Bildverarbeitungsparameter für die Druckmethode 'engraved_darkfield'"engraved_darkfield""engraved_darkfield""engraved_darkfield""engraved_darkfield""engraved_darkfield":

   'compactness_min'  Minimale Kompaktheit (vgl. compactnesscompactnessCompactnesscompactnessCompactnessCompactness)
                      GenParamValues: > 1.0  (-1: Merkmal nicht verwenden)
                      default:        1.2

   'compactness_max'  Maximale Kompaktheit
                      GenParamValues: >= 'compactness_min'"compactness_min""compactness_min""compactness_min""compactness_min""compactness_min"  (-1: Merkmal nicht verwenden)
                      default:        3.0

   'edge_thresh'      Schwellwert im Kantenbild
                      GenParamValues: 0...255
                      default:        120

   'region_rect2_rel' Flächenverhältnis zwischen Region und dem
                      kleinsten umschließenden Rechteck.
                      GenParamValues: < 1.0
                      default:        0.7

   'median_mask_rad'  Maskengröße für initiale Medianfilterung (vgl. Operator median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage).
                      GenParamValues: > 0
                      default:        0.1 * 'module_width'"module_width""module_width""module_width""module_width""module_width" + 0.5

Bildverarbeitungsparameter für die Druckmethode 'engraved_lightfield'"engraved_lightfield""engraved_lightfield""engraved_lightfield""engraved_lightfield""engraved_lightfield":

   'anisometry_max'   Maximale Anisometrie (vgl. eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity)
                      GenParamValues: > 1  (-1: Merkmal nicht verwenden)
                      default:        1.45

   'compactness_min'  Minimale Kompaktheit (vgl. compactnesscompactnessCompactnesscompactnessCompactnessCompactness)
                      GenParamValues: > 1  (-1: Merkmal nicht verwenden)
                      default:        1.2

   'compactness_max'  Maximale Kompaktheit
                      GenParamValues: >= 'compactness_min'"compactness_min""compactness_min""compactness_min""compactness_min""compactness_min"
                      (-1: Merkmal nicht verwenden)
                      default:        3.0

   'circularity_max'  Maximale Zirkularität (vgl. circularitycircularityCircularitycircularityCircularityCircularity)
                      GenParamValues: 0...1  (-1: Merkmal nicht verwenden)
                      default:        0.8

   'circularity_min'  Minimale Zirkularität
                      GenParamValues: <= 'circularity_max'"circularity_max""circularity_max""circularity_max""circularity_max""circularity_max"
                      (-1: Merkmal nicht verwenden)
                      default:        0.45

   'deviation_min'    Minimale Grauwert-Abweichung (vgl. intensityintensityIntensityintensityIntensityIntensity)
                      GenParamValues: > 1.0  (-1: Merkmal nicht verwenden)
                      default:        20.0

   'mean_mask_size'   Maskengröße für die Bildmittelung.
                      GenParamValues: >= 3
                      default:        10 * 'module_width'"module_width""module_width""module_width""module_width""module_width"

   'area_min'         Minimale Symbolgröße in Pixel*Pixel.
                      GenParamValues: > 0
                      default:        0.25 * 'module_width'"module_width""module_width""module_width""module_width""module_width"^2 *
                                 'columns_min'"columns_min""columns_min""columns_min""columns_min""columns_min" * 'rows_min'"rows_min""rows_min""rows_min""rows_min""rows_min"

   'area_max'         Maximale Symbolgröße in Pixel*Pixel.
                      GenParamValues: >= 'area_min'"area_min""area_min""area_min""area_min""area_min"
                      default:        4.0 * 'module_width'"module_width""module_width""module_width""module_width""module_width"^2 *
                                 'columns_min'"columns_min""columns_min""columns_min""columns_min""columns_min" * 'rows_min'"rows_min""rows_min""rows_min""rows_min""rows_min"

   'closing_mask_rad' Maskengröße für closing_circleclosing_circleClosingCircleclosing_circleClosingCircleClosingCircle über der
                      Testregion.
                      GenParamValues: > 0
                      default:        'module_width'"module_width""module_width""module_width""module_width""module_width"

   'opening_mask_rad' Maskengröße für opening_circleopening_circleOpeningCircleopening_circleOpeningCircleOpeningCircle über der
                      Testregion.
                      GenParamValues: > 0
                      default:        1.5*'module_width'"module_width""module_width""module_width""module_width""module_width"

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte)

Bild, das Barcode(s) enthält.

CodeRegionCodeRegionCodeRegionCodeRegionCodeRegioncodeRegion (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Regionen, die einen Barcode enthalten könnten.

BarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrbarCodeDescr (input_control)  barcode_2d HTupleHTupleHBarCode2D, HTupleHBarCode2DX, VARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Beschreibung der gesuchten 2D-Barcodeklasse

GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames (input_control)  attribute.name(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Liste von Namen (optionaler) generischer Parameter für die Steuerung der Bildverarbeitung.

Defaultwert: []

Werteliste: 'anisometry_max'"anisometry_max""anisometry_max""anisometry_max""anisometry_max""anisometry_max", 'area_max'"area_max""area_max""area_max""area_max""area_max", 'area_min'"area_min""area_min""area_min""area_min""area_min", 'circularity_max'"circularity_max""circularity_max""circularity_max""circularity_max""circularity_max", 'circularity_min'"circularity_min""circularity_min""circularity_min""circularity_min""circularity_min", 'closing_mask_rad'"closing_mask_rad""closing_mask_rad""closing_mask_rad""closing_mask_rad""closing_mask_rad", 'compactness_max'"compactness_max""compactness_max""compactness_max""compactness_max""compactness_max", 'compactness_max'"compactness_max""compactness_max""compactness_max""compactness_max""compactness_max", 'compactness_min'"compactness_min""compactness_min""compactness_min""compactness_min""compactness_min", 'compactness_min'"compactness_min""compactness_min""compactness_min""compactness_min""compactness_min", 'deviation_min'"deviation_min""deviation_min""deviation_min""deviation_min""deviation_min", 'edge_thresh'"edge_thresh""edge_thresh""edge_thresh""edge_thresh""edge_thresh", 'mean_mask_size'"mean_mask_size""mean_mask_size""mean_mask_size""mean_mask_size""mean_mask_size", 'mean_mask_size_1'"mean_mask_size_1""mean_mask_size_1""mean_mask_size_1""mean_mask_size_1""mean_mask_size_1", 'mean_mask_size_2'"mean_mask_size_2""mean_mask_size_2""mean_mask_size_2""mean_mask_size_2""mean_mask_size_2", 'median_mask_rad'"median_mask_rad""median_mask_rad""median_mask_rad""median_mask_rad""median_mask_rad", 'module_width'"module_width""module_width""module_width""module_width""module_width", 'opening_mask_rad'"opening_mask_rad""opening_mask_rad""opening_mask_rad""opening_mask_rad""opening_mask_rad", 'region_rect2_rel'"region_rect2_rel""region_rect2_rel""region_rect2_rel""region_rect2_rel""region_rect2_rel"

GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues (input_control)  attribute.value(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Liste von Werten der generischen Parameter für die Steuerung der Bildverarbeitung.

Defaultwert: []

Werteliste: 1, 1.1, 1.2, 1.3, 1.4, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

CodeRegDescrCodeRegDescrCodeRegDescrCodeRegDescrCodeRegDescrcodeRegDescr (output_control)  string-array HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Zusätzliche Parameter, die die Barcoderegionen beschreiben und für die Extraktion der Datenwerte verwendet werden können (siehe decode_2d_bar_codedecode_2d_bar_codeDecode2dBarCodedecode_2d_bar_codeDecode2dBarCodeDecode2dBarCode).

Ergebnis

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

Vorgänger

gen_2d_bar_code_descrgen_2d_bar_code_descrGen2dBarCodeDescrgen_2d_bar_code_descrGen2dBarCodeDescrGen2dBarCodeDescr

Nachfolger

get_2d_bar_codeget_2d_bar_codeGet2dBarCodeget_2d_bar_codeGet2dBarCodeGet2dBarCode, get_2d_bar_code_posget_2d_bar_code_posGet2dBarCodePosget_2d_bar_code_posGet2dBarCodePosGet2dBarCodePos

Modul

Data Code


KlassenKlassenKlassenKlassen | | | | Operatoren