树莓派CSI摄像头python识别二维码

1.

打开终端,更新树莓派,将软件源更新一遍

sudo apt-get update

 更新系统,将已安装的软件更新到最新版

sudo apt-get upgrade

 

这是带摄像头的树莓派。

开启摄像头

sudo raspi-config

选择Interfacing option,enter后进入

将camera设为enable。退出后Reboot树莓派。

2.

安装我们要用的包库。

sudo apt-get install python-imaging
sudo apt-get install python-zbar
sudo apt-get install python-opencv
sudo apt-get install libcv-dev
sudo apt-get install build-essential

3.

树莓派专用CSI摄像头插到树莓派的CSI口上并在在raspi-config中打开后就可以使用raspistill命令直接使用,但如果在OpenCV中调用CSI摄像头会出现无数据的现象(cv2.VideoCapture(0)这时不会报错)。 这是因为树莓派中的camera module是放在/boot/目录中以固件形式加载的,不是一个标准的V4L2的摄像头驱动,所以加载起来之后会找不到/dev/video0的设备节点。我们在/etc/modules里面添加一行bcm2835-v4l2(小写的L)就能解决问题。 

sudo nano /etc/modules

之后进入这个界面

 

加一行bcm2835-v4l2,ctrl+O 然后回车保存 ,ctrl+X退出。Reboot一下。

用下面命令行查看一下有没有video0的设备。

ls /dev/

4.

运行python文件——camera.py

python /home/pi/camera.py

其中详细代码为

#!/usr/bin/env python  
#-*- coding: UTF-8 -*-   

# import the necessary packages
import cv2
import numpy as np
import zbar
from PIL import Image

# create a reader
scanner = zbar.ImageScanner()
# configure the reader
scanner.parse_config('enable')
font=cv2.FONT_HERSHEY_SIMPLEX
camera=cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    grabbed, frame = camera.read()
    if not grabbed:
        break
    pil= Image.fromarray(frame).convert('L')
    width, height = pil.size
    raw = pil.tobytes()
    zarimage = zbar.Image(width, height, 'Y800', raw)
    scanner.scan(zarimage)
    for symbol in zarimage:  
        if not symbol.count: 
            print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data 
            cv2.putText(frame,symbol.data,(20,100),font,1,(0,255,0),4)
#           do something useful with results...
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
camera.release()
cv2.destroyAllWindows()

 

5.

结果,正确识别。

 

 

参考:
https://blog.csdn.net/x115104/article/details/78878599 
 

  • 0
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值