tiscamera IC Barcode Demo

Veröffentlicht am 28. Juni 2023 von TIS Marketing.

Dieses Beispiel demonstriert wie The Imaging Source Barcode Library von IC Barcode für AMD 64 oder IC Barcode für ARM 64 in einem Qt-basierten C++ Programm verwendet werden kann.

Voraussetzungen

Bildschirmaufnahme: IC Barcode

Build

Nachdem alle oben genannten Pakete installiert wurden, wird die Demo mit

mkdir build
cd build 
cmake ..
make

Ausführung

cd build 
./ICBarcode

Usage

Auswahl des Geräts

Klicken Sie auf das Menü Device und dann auf Select, um den Dialog zur Geräteauswahl zu öffnen:

Geräteauswahl

Nachdem Sie ein Gerät ausgewählt haben, können Sie nun mit dem Scannen von Barcodes beginnen:

Geräteauswahl Auf dem obigen Bild sieht man einen Code128 und einen Datamatrix-Code. Beide können aus demselben Bild gescannt werden. Die Codes sind außerdem positionsinvariant.

Geräteeigenschaften

Dieses Beispiel enthält einen Eigenschaftsdialog zum Einstellen aller Eigenschaften:

Gescannte Barcodes

Die Dialoge zur Geräteauswahl und zu den Geräteeigenschaften befinden sich im Unterverzeichnis tcamcamera. Diese können in Ihrer eigenen Software verwendet werden.

Quellcode

Auswahl der zu erkennenden Barcodes

Der zu erkennende Barcode kann wie folgt festgelegt werden:

    int formats = 0;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_CODE_128;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_CODE_93;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_EAN_13;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_EAN_8;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_UPC_A;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_QR_CODE;
    formats |= ICBarcode_Format::IC_BARCODEFORMAT_DATA_MATRIX;
    //formats |= ICBarcode_Format::IC_BARCODEFORMAT_INTERLEAVED_2_OF_5;
    //formats |= ICBarcode_Format::IC_BARCODEFORMAT_CODE_39;
    
    ICBarcode_SetBarcodeFormats(_callback_user_data.pIC_BarcodeScanner, formats);

Je kürzer die Liste, desto schneller die Erkennung.

Multithreading und Events

Gstreamer läuft in einem anderen Thread, als die QT GUI. Daher werden die Barcode-Ergebnisse über eine Event-Struktur an den GUI-Hauptthread weitergegeben. Der Eventhandler und die Klassen sind dazu in mainwindow.h definiert

Graphik-Overlay

Die grafische Darstellung eines roten Rahmens um das Overlay erfolgt mit dem Element GSteamer rsvgoverlay. Es empfängt einen XML-String, der die grafische Beschreibung enthält.

Fragen und Kontakt

Bei Fragen, kontaktieren Sie uns bitte.