树莓派接上摄像头后运行此程序,在本机电脑访问树莓派启动的web端口,可直接获取二维码扫描的结果,或者获取当前摄像头照片。

由于树莓派自带python版本是2.7,本文使用python2,python3需少量修改。

使用的库

大部分使用pip直接安装即可,具体安装方法自行搜索

  • picamera
  • flask
  • zbar
  • PIL

获取摄像头图像

下面的程序可获取当前摄像头的图像

import picamera.array
from PIL import Imagewith picamera.PiCamera() as camera:camera.resolution = (1366, 768)camera.framerate = 10print "start preview direct from GPU"camera.start_preview()with io.BytesIO() as stream:camera.capture(stream, 'jpeg')im = Image.open(stream)

with picamera.PiCamera() as camera:打开了摄像头,这时候我们只要我们只要在这个with层级下,摄像头就不会关闭,可以一直获取图像。
而怎么让运行的时候一直保持在此层级下呢,没错答案就是让程序阻塞在此。当然不能用while True:实现阻塞,我们还要运行flask框架,我们知道flask在运行的时候是阻塞的,所以可以利用这个,让程序阻塞。

结合flask通过http返回结果

import picamera.array
import io
import base64
from cStringIO import StringIO
from PIL import Image
from flask import Flask, jsonify
import zbarprint "create app..."
app = Flask(__name__)with picamera.PiCamera() as camera:camera.resolution = (1366, 768)camera.framerate = 10print "start preview direct from GPU"camera.start_preview()@app.route('/')def hello():return "hello"@app.route('/image')def get_img():print "---------", "start get img"with io.BytesIO() as stream:camera.capture(stream, 'jpeg')print "capture"im = Image.open(stream)output_buffer = StringIO()im.save(output_buffer, format='JPEG')binary_data = output_buffer.getvalue()base64_data = base64.b64encode(binary_data)print "base64:"return "<img width='100%' src=\"data:image/jpg;base64," + base64_data + "\">"@app.route('/qr')def get_qr():with io.BytesIO() as stream:camera.capture(stream, 'jpeg')im = Image.open(stream)# im = Image.open("Z.jpg")pil = im.convert('L')width, height = pil.sizeraw = pil.tobytes()image = zbar.Image(width, height, 'Y800', raw)scanner = zbar.ImageScanner()scanner.parse_config('enable')scanner.scan(image)res = []for symbol in image:print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.datares.append({"type": str(symbol.type),"data": symbol.data})return jsonify({"status": 0,"data": res})app.run(host="0.0.0.0", port=8080, threaded=True)

使用树莓派摄像头识别二维码,并通过http返回结果相关推荐

  1. html+js 调用摄像头识别二维码

    1. html调起摄像头,参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia 2.识别二维码 ...

  2. Vue组件-调用摄像头识别二维码

    需要下载的包 @zxing/library@0.18.4 element-ui 可识别类型 可识别二维码和大部分条形码,具体请查看zxing 代码文本 /**条码扫描组件使用示例:-- 引入impor ...

  3. 树莓派python识别二维码_Zbar树莓派二维码(QR)识别(基于图片)

    注意:如果二维码太小的话,zbar是很难识别的,这也是我在公司解决的问题(不然随便调用下zbar就解决问题了,图像算法工程师就没有存在的必要了,下文虽然是一个通用的解决方案,但对一般识别应用场景来说是 ...

  4. Python_OpenCV通过摄像头识别二维码和条形码

    参考: python3 + opencv +pyzbar 摄像头检测二维码并获取二维码内容/版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本 ...

  5. js 通过摄像头识别二维码,可以控制闪光灯。原生 HTML 调用摄像头,有 原生HTML + JS 版本 和 VUE3 + TS 版本与 uniapp 版本

    开发背景 最开始公司说到这个需求的时候第一个想法是使用微信的 js SDK 接入微信的扫一扫.但是得知所做的这个功能模块是需要嵌入到之前开发的app中,所以就只有使用 js 原生的 API 来开发了. ...

  6. python摄像头识别二维码_python使用pyzbar+opencv实现实时识别二维码--李渣渣(lizaza.cn)...

    写东西就要写全面,前两天写了如何用python生成二维码,今天博主就给大家介绍一个识别二维码的方法. 1.安装本次开发所需要的库opencv 和pyzbar pip install pyzbar pi ...

  7. uniapp开发h5调摄像头识别二维码信息

    因为html5+是要在app环境下运行,所以先创建一个5+项目 我是觉得一个页面想要扫码识别后拿到数据不是很方便就创建了两个vue来进行测试,也可以在一个页面进行 index.vue <temp ...

  8. js使用摄像头识别二维码

    1.开启电脑摄像头 第一步 使用video标签开启电脑摄像头 介绍 /* 设置video画面大小 */var config = {video: {width:500,height:500},audio ...

  9. python 通过摄像头识别二维码或条形码

    话不多说直接上代码: from pyzbar.pyzbar import decode import cv2 import webbrowsercap = cv2.VideoCapture(0)whi ...

最新文章

  1. 星际2正在等待暴雪服务器的响应,win7系统玩星际2一直停留在"正在更新暴雪启动器"页面的解决方法...
  2. 我们该使用哪种分布式锁?
  3. [LeetCode] Rotate List
  4. 变革后的维密,做了一款不赚钱的内衣
  5. 设置某个元素的标签内容、设置元素的样式、层次选择器、总结选择器
  6. Codeforces Gym 100269G Garage 数学
  7. maven的三种packaging方式
  8. 将jOOQ与JDBC比较
  9. Postgres_XL 简要安装配置说明
  10. 京东物流首架全货机首航 久未露面的刘强东还发声推广
  11. 8盏流水灯反向闪烁c语言,课程设计(论文)_利用8255A芯片实现流水灯闪烁设计.doc...
  12. CPN(Cascaded Pyramid Network for Multi-Person Pose Estimation) 姿态估计
  13. dota2自走棋Android怎么更新,dota2自走棋
  14. 学习记录2——PMSM数学建模——坐标变换理论以及相应的Matlab模块搭建
  15. 新辰:台北90后创业炸鸡配啤酒 来自星星的你 不成功也难
  16. linux strace php,在Linux下使用strace窥视Oracle LGWR进程
  17. 动态调度之记分牌算法
  18. 记录一次Anaconda安装Spyder失败及解决方法
  19. 安装纯净版win10系统
  20. 人工智能的逆向工程--反向智能研究综述

热门文章

  1. QGIS自定义符号的原理与实践——以北京市标准地图为例
  2. Cocos Creator 3D 麒麟子回来了!(入门心法)
  3. ChatGPT如何帮助学生学习
  4. 只用两行代码做个表白二维码,赶快送给你心目中那个她吧♥(๑> ₃ <)♥
  5. 持续集成(CI)和容器管理 学习笔记
  6. 电脑总蓝屏,可能是什么原因?怎么解决?
  7. BJFU_2022Web前端开发_CSS样式汇总
  8. (7)hibernate中OneToMany单向
  9. wangeditor:一个页面使用多个wangeditor编辑器,并对wangeditor进行组件封装以及上传图片到自己的服务器
  10. JS基础,从JS的组成到JS函数写法