基于英特尔® EDISON 并配置网络摄像头的条形码扫描仪


鉴于条码扫描已在移动设备上得到广泛应用,用户可能想要使用英特尔® Edison 运行自动化条码扫描。

Linux 条码 API

Linux 提供多种全功能开源条码读取库,如 zxing (Apache 2) 或 ZBar (LGPL 2.1)。 zxing 针对 Java,而 ZBar 针对 C 语言,因此不需要 Java 运行时。 在下面的描述中,我们将使用 ZBar API。

基于英特尔® Edison的 USB 网络摄像头

最近为英特尔® Edison 提供了 Yocto 映像已经包含了面向 UVC USB 摄像头的驱动程序,因此您可以直接使用相关摄像头。 对于gspca  网络摄像头等其他摄像头,您可能需要在使用摄像头之前首先构建驱动程序。

安装 ZBar

我们想要将 zbar 用于实时视频和静态图像。 对于后者,我们需要 ImageMagick库。您可通过下列方式,通过repo.opkg.net  并按照说明安装该库,包括所有关联组件

1 # opkg install imagemagick_dev

2 # wget http://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.bz2

3 # cd zbar-0.10

4 # ./configure --without-qt --without-gtk --without-xv --without-xshm --with-imagemagick --with-x=no --prefix="/usr"

01 [...]
02
03 一些时间之后它应该会在末尾带上
04
05
[...]
06 请确认检测的配置符合您的预期:
07 ------------------------------------------------------------------------
08 [...]
09 X --with-x=disabled
10 pthreads --enable-pthread=yes
11 v4l --enable-video=yes
12 jpeg --with-jpeg=yes
13 Magick++ --with-imagemagick=yes
14 Python --with-python=yes
15 GTK+ --with-gtk=no
16 => the GTK+ widget will *NOT* be built
17 Qt4 --with-qt=no
18 => the Qt4 widget will *NOT* be built

遗憾的是,libtool 设置似乎无法总是正常运行。 结果,调用“make”时出现了错误消息。 为完成编译和安装,我使用了下面的变通方式:

1 # rm libtool
2 # ln -s /usr/bin/libtool libtool
3 # make
4 # make install\

如果您没有安装 "/usr/bin/libtool",您可以查找相关程序包,例如通过 repo.opkg.net。

安装成功之后,您应该可以找到 2 个二进制 "/usr/bin/zbarimg" 和 "/usr/bin/zbarcam"。 前者为从静态图像中读取条码的二进制示例, 后者通过下列方式直接从实时视频流中读取

1 # zbarcam --nodisplay

如果您已安装了基于英特尔® Edison 的 OpenCV,您还可在检测之前将 zbar 和 OpenCV 组合以进行一些图像处理工作(如 OpenCV 和 ZBar 示例)

文章来源:英特尔开发人员专区