在安装有armbian的操作系统的R329开发板,可以做通过板上的摄像头识别二维码。
首先安装开发库:
apt-get install libzbar-dev --fix-missing
出现打印信息
Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate. Could not handshake: Error in the certificate verification.
看起来像是ca-certificates没有安装,尝试
apt update
apt install ca-certificates
更新认证功能后,正常安装。
再安装python库:
pip3 istall pyzbar
环境搭建完成后,进行代码开发,程序流程如需:
实时从摄像头获取视频帧;
处理该视频帧,通过增强和膨胀获得一个优化后的图片;
在图片中找到二维码中标识点,进而定位二维码的图案;
然后后使用pyzbar进行识别;
如果识别二维码成功,将识别结果和识别所用时间在屏幕上显示出来,同时停止视频采集。
如果识别失败,再获取一帧图像,重复上述操作。
实际使用时发现,摄像头采集的图片效果质量较差,大部分二维码是无法识别的,且即使可成功识别,效率也非常低,几乎都需要16秒左右进行运算,由于效率原因,这个代码的实用价值有限。计划考虑进一步提升代码效率。
另外在开发代码时,没有考虑旋转,因此采集到图片中的二维码需要几乎和屏幕保持相同的方向才能正确识别。为了显示效果,还是提前执行echo -e "\033[?25l" > /dev/tty0关闭掉屏幕光标。
附上成功识别的几个图片。
取出临时图片
|