Mit Barcode-Scannen als Standard auf mobilen Geräten möchte man es Intel(R) Edison ermöglichen, automatisiertes Scannen von Barcodes durchzuführen.
Linux Barcode APIs
Auf Linux sind Bibliotheken für das Lesen von Barcodes mit vollem Funktionsumfang verfügbar wie zxing (Apache 2) oder ZBar (LGPL 2.1). Während zxing auf Java fokussiert ist, hat ZBar eine C-Implementierung und erfordert daher keine Java-Runtime. In der folgenden Beschreibung nutzen wir die ZBar API.
USB-Webcams auf Intel® Edison
In den neuesten Yocto-Abbildern für Intel® Edison sind bereits Treiber für UVC-USB-Kameras enthalten, und Sie können diese Kameras direkt nutzen. Für andere Kameras wie die gspca-Webcams müssen Sie zunächst den Treiber aufbauen, um die Kamera zu benutzen.
ZBar installieren
Wir möchten in der Lage sein, zbar für Live-Videos und auch statische Bilder zu nutzen. Für letzteres benötigen wir die ImageMagick-Bibliotheken, die Sie einschließlich aller Abhängigkeiten direkt von repo.opkg.net installieren können, indem Sie den folgenden Anweisungen folgen über
# opkg install imagemagick_dev
<span># wget http://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.bz2
</span><span># cd zbar-0.10
</span><span># ./configure –without-qt –without-gtk –without-xv –without-xshm –with-imagemagick
–with-x=no –prefix=“/usr“ </span>
[…]<span>which should end after some time with
</span>[…] please verify that the detected configuration matches your expectations:
————————————————————————
[…] X –with-x=disabled
pthreads –enable-pthread=yes
v4l –enable-video=yes
jpeg –with-jpeg=yes
Magick++ –with-imagemagick=yes
Python –with-python=yes
GTK+ –with-gtk=no
=> the GTK+ widget will *NOT* be built
Qt4 –with-qt=no
=> the Qt4 widget will *NOT* be built
Leider scheinen die libtool-Einstellungen nicht zu 100 Prozent zu funktionieren. Daher endete der Aufruf von „make“ mit einer Fehlermeldung. Um die Kompilierung zu vollenden und zu installieren, benutzte ich folgenden Workaround:
# rm libtool
# ln -s /usr/bin/libtool libtool
# make
# make install
Wenn Sie „/usr/bin/libtool“ nicht installiert haben, können Sie ein Paket z.B. finden auf repo.opkg.net. Nach einer erfolgreichen Installation sollten Sie die zwei Binaries „/usr/bin/zbarimg“ und „/usr/bin/zbarcam“ finden. Ersteres sind Beispiele für zu lesende Barcodes aus statischen Bildern. Letzteres stammt direkt von einem Live-Videostream über
# zbarcam –nodisplay
Wenn Sie OpenCV auf Intel(R) Edison installiert haben, können Sie auch zbar und OpenCV kombinieren, um einige Bildverarbeitung vor der Erkennung durchzuführen (z. B. OpenCV & ZBar-Beispiel).
Für mehr Informationen über Intel® Edison, schau dir den Getting Started guide und das tech community forum an. Entdecke zudem die verfügbaren Entwickler-Toos für das IoT in der Intel IoT Developer Zone.