树莓派自带摄像头OpenCV图像识别-二维码识别
来源:互联网 发布:开淘宝店的具体步骤 编辑:程序博客网 时间:2024/04/29 23:08
1、安装树莓派镜像,SSH,VNC等这里就不介绍了很简单大家自行百度。
2、我没有用VNC 所以装了teamviewer用于树莓派远程控制
安装教程参考:http://blog.csdn.net/shaopengf/article/details/75072907
3、安装一个功能齐全的OenpCV视觉库
sudo apt-get update
保证各个软件都是最新的,你将要下载很多东西,请保证网络畅通。sudo apt-get install build-essential
安装编译OpenCV必不可少的依赖库sudo apt-get install build-libavformat-dev
该库提供一种音视频码流的编解码方法sudo apt-get install ffmpeg
该库提供音视频流的转码功能sudo apt-get install python-opencv
OpenCV所依赖的Python开发包sudo apt-get install opencv-doc
安装OpenCV开发文档,万一你需要呢sudo apt-get install libcv-dev
安装编译OpenCV所需要的头文件和静态库sudo apt-get install libcvaux-dev
安装更多的开发工具来编译OpenCVsudo apt-get install libhighgui-dev
安装另一个编译OpenCV所需要的头文件和静态库cp -r /usr/share/doc/opencv-doc/examples /home/pi/
将所有示例拷贝到你的根目录
4、准备摄像头 如果用USB摄像头那不用做什么可以直接使用,要使用树莓派自带摄像头的话参考下面方法:
- 树莓派专用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
如图 最后重启
用ls /dev/
查看有没有video0的设备
- 测试摄像头 把刚刚拷贝到根目录下的例程中 camera.py 复制出来,测试一下摄像头 cp /home/pi/examples/python/camera.py /home/pi/
python camera.py
运行看有没有图像video0的设备
5、我们进入正题 二维码识别,我这里我们还需要装一个Python-zbar
输入命令sudo apt-get install python-zbar
完成后直接使用下面程序运行
#!/usr/bin/env python #-*- coding: UTF-8 -*- # import the necessary packagesimport simple_barcode_detectionimport cv2import numpy as npimport zbarfrom PIL import Image# create a readerscanner = zbar.ImageScanner()# configure the readerscanner.parse_config('enable')font=cv2.FONT_HERSHEY_SIMPLEXcamera=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: # do something useful with results 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) cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): breakcap.release()cv2.destroyAllWindows()
运行效果
下面是我电脑上的二维码
目前中文会乱码,还未解决,有时间解决还会更新。
6、相关参考文档
- OpenCV https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html
- Python-zbar https://sourceforge.net/p/zbar/wiki/Home/
阅读全文
0 0
- 树莓派自带摄像头OpenCV图像识别-二维码识别
- iOS人脸识别、自定义相机、图像扫描、系统自带二维码识别
- iOS 自带二维码识别(识别二维码,条形码以及从相册中选择图片进行识别)
- opencv GPU自带行人识别
- opencv二维码识别解码
- 使用电脑摄像头识别二维码
- USB摄像头预览识别二维码
- USB摄像头预览识别二维码
- Android+OpenCV 摄像头实时识别模板图像并跟踪
- OpenCV-009:识别摄像头图像中的指定颜色并显示
- opencv图像识别
- 图像识别---opencv安装
- OpenCV实现图像识别
- opencv 图像识别程序
- opencv+树莓派+自带摄像头 获取视频
- opencv+树莓派+自带摄像头 获取视频
- 【图像识别】 Python+Opencv调用摄像头实现人脸识别并保存视频
- 【opencv学习之六】opencv+Qt+Qzxing调取本地摄像头识别二维码
- 如何用思维导图学Java编程思想
- 96 年美女胜出!那个有关“猪脸识别”的比赛决出冠军啦
- XYNUOJ 词组缩写
- 最短子串
- Apache +Jetty的负载均衡与集群配置(下)
- 树莓派自带摄像头OpenCV图像识别-二维码识别
- 浮点数的二进制表示
- #ifndef/#define/#endif使用详解
- bzoj2426 [HAOI2010]工厂选址 读题+贪心
- 你真的不知道你的CPU到底有多强!
- 基础+就业\黑马程序员_Springmvc+Mybatis由浅入深全套视频教程video\Springmvc+Mybatis由浅入深全套视频教程\springmvc\day0\11springmvc入
- 二维数组可以赋值一维数组
- 敲黑板敲黑板,流量卡怎么选?
- 小鑫の日常系列故事(二)——石头剪子布