通过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中AND、OR的一个使用小技巧
Feb 18 Python
python中字典(Dictionary)用法实例详解
May 30 Python
python 计算文件的md5值实例
Jan 13 Python
Python单元测试简单示例
Jul 03 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
Django框架使用mysql视图操作示例
May 15 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
python爬虫用mongodb的理由
Jul 28 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Python创建简单的神经网络实例讲解
Jan 04 Python
python实现简单石头剪刀布游戏
Oct 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
基于php 随机数的深入理解
2013/06/05 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
php中final关键字用法分析
2016/12/07 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
javascript实现简易计算器
2017/02/01 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
vue计算属性和监听器实例解析
2018/05/10 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
优秀学生干部个人的自我评价
2013/10/04 职场文书
商务专员岗位职责
2013/11/23 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
机电专业求职信
2014/06/14 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
公司档案管理制度
2015/08/05 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang