通过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实现rest请求api示例
Apr 22 Python
Python两个整数相除得到浮点数值的方法
Mar 18 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
Python 转义字符详细介绍
Mar 21 Python
python 魔法函数实例及解析
Sep 25 Python
解决django model修改添加字段报错的问题
Nov 18 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
Python count函数使用方法实例解析
Mar 23 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
python识别验证码的思路及解决方案
Sep 13 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 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
如何使用php输出时间格式
2013/08/31 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
jquery ajax abort()的使用方法
2010/10/28 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
理解javascript封装
2016/02/23 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
python GUI实例学习
2017/11/21 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
绩效管理实施方案
2014/03/19 职场文书
国旗下的演讲稿
2014/05/08 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
SQL Server中搜索特定的对象
2022/05/25 SQL Server
Redis+AOP+自定义注解实现限流
2022/06/28 Redis