通过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批量下载图片的三种方法
Apr 22 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
python实现备份目录的方法
Aug 03 Python
Python实现完整的事务操作示例
Jun 20 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Python批量处理csv并保存过程解析
May 16 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 Python
python中对列表的删除和添加方法详解
Feb 24 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
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
python类参数self使用示例
2014/02/17 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python多进程重复加载的解决方式
2019/12/13 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
游戏商店:Eneba
2020/04/25 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
学雷锋宣传标语
2014/06/25 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
2015安全保卫工作总结
2015/04/25 职场文书