树莓派做条码扫描枪

首先安装必要的包python-zbar,

然后安装SimpleCV:(参考这里的)

还有一个包svgwrite:(不安装的话,运行会出错:No module named svgwrite),同时一起安装了一个pyparsing

还要安装一个lsof,(不安装的话,运行cam = Camera()会报错:/bin/sh: 1: lsof: not found),参考:https://www.raspberrypi.org/forums/viewtopic.php?t=56103&p=460672

上程序:

运行结果(手动对焦摄头):

运行结果(自动对焦摄头):

可以看到

导入SimpleCV包用掉了2.3秒,

获取手动对焦摄像头用掉0.7秒,获取自动对焦摄像头用掉1秒,

获取手动对焦图像及分析条码加起来只用了0.16秒,获取自动对焦图像及分析条码加起来用了2.3秒(循环了解14次),

所以在正常循环使用时,可以先import包,获取到摄像头,然后当需要读sn时就比较快了。

结果输出里有显示循环了几次才正确读到条码,这个0表示只用一次就读到了。这款手动对焦摄像头其实很普通,是好多年前电脑CPU还是奔腾4时代买来玩的。对好焦后一次过读取到SN。 相反一款罗技带自动对焦功能的摄像头反而要用多次才能读到,时间上就慢了一些。

反复试验焦点可以在5-14cm之间

img_20161022_160556

img_20161022_160755

这是焦点设在12cm时获取到的图像,条码长度占图片宽度约1/3.

sn

参考:

RASPBERRY PI BARCODE SCANNER

http://simplecv.org/

https://github.com/sightmachine/SimpleCV

http://www.geek.com/

https://github.com/Banrai/PiScan

 

使用usb webcam获取图片:

https://www.raspberrypi.org/documentation/usage/webcams/

http://elinux.org/RPi_USB_Webcams

 

打赏