通过python扫描二维码/条形码并打印数据


Posted in Python onNovember 14, 2019

需提前安装好pyzbar和opencv-python库(博主的电脑安装opencv-python库比较麻烦,但大部分都不会出现该问题)

安装方法:打开命令框输入 pip install pyzbar/opencv- python

接下来介绍代码

#首先导入本次所需要的库,最后一个csv是Python自带的csv表格操作库,这里我们需要把我们扫到的二维码信息都存入csv表格里。
import cv2
from pyzbar import pyzbar
import csv
 
#然后我们设置一个变量,来存放我们扫到的码的信息,我们每次扫描一遍都会要检测扫描到的码是不是之前扫描到的,
# 如果没有就存放到这里。接着我们调用opencv的方法来实例化一个摄像头,
# 最后我们设置一些我们存放码信息的表格的路径。
found = set()
capture = cv2.VideoCapture(0)
#存放数据的表格
PATH = "test.csv"
#不停的用摄像头来采集条码,
while(1):
  # 首先我们要用刚才实例化的摄像头来采集实时的照片,
  ret,frame = capture.read()
  #找到图像中的条形码并进行解码
  test = pyzbar.decode(frame)
 
  # 循环检测到的条形码
  for tests in test:
    # 先将它转换成字符串
    testdate = tests.data.decode('utf-8')
    testtype = tests.type
 
    # 绘出图像上条形码的数据和条形码类型
    printout = "{} ({})".format(testdate, testtype)
 
    if testdate not in found:
    # 向终端打印条形码数据和条形码类型
      print("[INFO] Found {} barcode: {}".format(testtype, testdate))
      print(printout)
    #存放扫描数据
    if testdate not in found:
      with open(PATH,'x+') as f:
      #x+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
        csv_write = csv.writer(f)
        date = [testdate]
        csv_write.writerow(date)
      found.add(testdate)
  cv2.imshow('Test',frame)
  if cv2.waitKey(1) == ord('q'):
    break

 如果遇到在命令符中无法安装opencv-python库的话,手动在该网址https://www.lfd.uci.edu/~gohlke/pythonlibs/下载对应的whl包,手动安装。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取DLL和EXE文件版本号的方法
Mar 10 Python
Python中for循环控制语句用法实例
Jun 02 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
opencv python统计及绘制直方图的方法
Jan 21 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
python 字符串常用方法汇总详解
Sep 16 Python
python设置代理和添加镜像源的方法
Feb 14 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
如何用python插入独创性声明
Mar 31 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 Python
VSCode中自动为Python文件添加头部注释
Nov 14 #Python
python中的函数递归和迭代原理解析
Nov 14 #Python
使用python实现对元素的长截图功能
Nov 14 #Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 #Python
python3实现单目标粒子群算法
Nov 14 #Python
python socket 聊天室实例代码详解
Nov 14 #Python
python中dict()的高级用法实现
Nov 13 #Python
You might like
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
php实例化一个类的具体方法
2019/09/19 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
js中function()使用方法
2013/12/24 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
工程专业毕业生自荐信范文
2013/12/25 职场文书
大班幼儿评语大全
2014/04/30 职场文书
2014最新离职证明范本
2014/09/12 职场文书
律政俏佳人观后感
2015/06/09 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA