参考:

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

安装pyzbar库

pip install pyzbar

用的摄像头OpenCV打不开,只能用厂家的SDK,改了改参考代码

import cv2
import pyzbar.pyzbar as pyzbar
import numpy as npfrom dvp import *#摄像头厂家提供的封装库def frame2mat(frameBuffer):frame, buffer = frameBufferbits = np.uint8 if(frame.bits == Bits.BITS_8) else np.uint16shape = NoneconvertType = Noneif(frame.format >= ImageFormat.FORMAT_MONO and frame.format <= ImageFormat.FORMAT_BAYER_RG):shape = 1elif(frame.format == ImageFormat.FORMAT_BGR24 or frame.format == ImageFormat.FORMAT_RGB24):shape = 3elif(frame.format == ImageFormat.FORMAT_BGR32 or frame.format == ImageFormat.FORMAT_RGB32):shape = 4else:return Nonemat = np.frombuffer(buffer, bits)mat = mat.reshape(frame.iHeight, frame.iWidth, shape)   #转换维度return matdef decodeDisplay(image):barcodes = pyzbar.decode(image)for barcode in barcodes:# 提取二维码的边界框的位置# 画出图像中条形码的边界框(x, y, w, h) = barcode.rectcv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)# 提取二维码数据为字节对象,所以如果我们想在输出图像上# 画出来,就需要先将它转换成字符串barcodeData = barcode.data.decode("utf-8")barcodeType = barcode.type# 绘出图像上条形码的数据和条形码类型text = "{} ({})".format(barcodeData, barcodeType)cv2.putText(image, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,3, color=(0, 255, 0), thickness=5)# 向终端打印条形码数据和条形码类型print("[INFO] Found {} barcode: {}".format(barcodeType, barcodeData))return imagedef detect():camera = Camera(0)#以索引号的方式打开相机camera.Start()#启动视频流cv2.namedWindow(u"Camera",0)#可以拖动窗口大小cv2.resizeWindow(u"Camera", 640, 480)#设置窗口大小cv2.moveWindow(u"Camera",1200,500)#设置窗口位置while (cv2.waitKey(1) != 27):# 读取当前帧frame = camera.GetFrame(3000)#从相机采集图像数据,超时时间为3000毫秒mat = frame2mat(frame)#转换为标准数据格式# 转为灰度图像#mat = cv2.cvtColor(mat, cv2.COLOR_BGR2GRAY)im = decodeDisplay(mat)cv2.imshow(u"Camera", im)cv2.destroyAllWindows()if __name__ == '__main__':detect()

运行效果:

cv2.putText可以设置显示的提示文本的颜色,但是不是RGB而是BGR顺序,以及如果用的是黑白摄像头或者彩色摄像头进行了灰度图转换,就算设置了颜色也会输出为黑白的

二维码

条形码,不过识别框的显示有点问题

Python_OpenCV通过摄像头识别二维码和条形码相关推荐

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

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

  2. opencv项目7---智能识别二维码和条形码

    利用opencv和一个摄像头设备即可实现智能识别二维码和条形码,用到的都是基础的opencv知识. 二维码和条形码的照片可以去网上自行搜索. 这个项目可以有很多扩展: 1:比如做成一个公司的二维码证件 ...

  3. H5移动版识别二维码和条形码

    H5移动版识别二维码和条形码(PC和移动端都兼容) 一.需要引入JS文件 <script src="https://www.jq22.com/jquery/jquery-1.10.2. ...

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

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

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

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

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

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

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

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

  8. ZXing 相册中识别二维码和条形码(直接引用就可以了)

    *百度了很久一直没有找到关于相册获取条形码的Demo,真心是醉了,只能苦逼的去自己看 闲话不说直接搞起 分析: *核心 1,通过路径转换成bitmp对象 2,再bitmap对象转换成二进制图片(二值化 ...

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

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

最新文章

  1. bzoj2458: [BeiJing2011]最小三角形
  2. Linux大文件切割命令split
  3. python PyQt5如何绘制矩形框?(画框/绘框)
  4. js input复选框选中父级同时子级也选中_突破百度JS反爬获取百度文库数据下载...
  5. 历史快照_实用脚本--合理估算oracle数据库及数据库对象历史增长情况
  6. 华为超大云数据中心落地贵州,这些硬核技术有利支撑“东数西算”
  7. Confluence与Jira安装及后期迁移问题记录
  8. Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
  9. 模拟银行转账(java+mysql+tomcat +JDBC+ druid连接池 + Servlet + Ajax)
  10. Hive安装详细步骤
  11. 雅虎 (YAHOO)相册下载工具 Beta1 发布
  12. 百度搜索url参数详解
  13. 手机dump内存Odex格式反编译
  14. python爬取内容_Python爬取数据(基础,从0开始)
  15. 梯度下降算法_Adam-一种随机优化算法
  16. GeneXus开发平台 拖拽低代码 JNPF源码,java开源快速开发平台
  17. python给视频添加声音_python给视频添加背景音乐并改变音量的具体方法
  18. 【雷达与对抗】【2006.09】多普勒模式匹配对雷达探测性能的改进
  19. 中国医用器械产业运行状况分析与投资策略研究报告2022-2028年
  20. 阿里出品,Excel 操作利器:easy-excel

热门文章

  1. ddns域名有什么用,怎么用
  2. MATLAB 的绘图:二维和三维
  3. C语言五子棋进阶版(增设玩家对战,大棋盘,棋盘行列对应等)
  4. 黑白照片如何变成彩色?教你几种照片变彩色小妙招
  5. 华为海思超过MTK,成为亚洲最大半导体供应商。
  6. linux命令清理磁盘空间,linux环境下清理系统磁盘空间命令详解
  7. 我想成为坐在路边鼓掌的人
  8. 2022-2027年中国海岛纤维行业市场深度分析及投资战略规划报告
  9. (转载) 有赞开源项目最佳实践
  10. 中国网民规模达5.6亿计算机二级答案,计算机二级Msoffice文字处理答案(解题步骤)....