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
- IC Barcode library (siehe oben)
- C++
- tiscamera 1.1.n von Releases
- tiscamera dev packages von Releases
- Qt dev packages
- Ein Videoaufnahmegerät von The Imaging Source
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:
Nachdem Sie ein Gerät ausgewählt haben, können Sie nun mit dem Scannen von Barcodes beginnen:
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:
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.