通过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爬取Coursera课程资源的详细过程
Nov 04 Python
Python调用命令行进度条的方法
May 05 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
在Tensorflow中查看权重的实现
Jan 24 Python
python实现程序重启和系统重启方式
Apr 16 Python
python中可以声明变量类型吗
Jun 18 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
用python对excel进行操作(读,写,修改)
Dec 25 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
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
js实现简单计算器
2015/11/22 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
9个JavaScript日常开发小技巧
2020/10/06 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
python设置检查点简单实现代码
2014/07/01 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
内容编辑个人求职信
2013/12/10 职场文书
法律专业应届生自荐信范文
2014/01/06 职场文书
庆八一活动方案
2014/01/25 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
Promise面试题详解之控制并发
2021/05/14 面试题
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
Python+tkinter实现高清图片保存
2022/03/13 Python
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL