通过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中对列表排序实例
Jan 04 Python
详细解析Python中的变量的数据类型
May 13 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
浅析Python数据处理
May 02 Python
基于DataFrame改变列类型的方法
Jul 25 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
手写一个python迭代器过程详解
Aug 27 Python
python检测服务器端口代码实例
Aug 31 Python
TensorFlow固化模型的实现操作
May 26 Python
python切割图片的示例
Nov 12 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 Python
浅谈Python协程asyncio
Jun 20 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 图片上添加透明度渐变的效果
2009/06/29 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
python文件操作相关知识点总结整理
2016/02/22 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Django 使用logging打印日志的实例
2018/04/28 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
python实现取余操作的简单实例
2020/08/16 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
英国医生在线预约:Top Doctors
2019/10/30 全球购物
读书月活动方案
2014/05/22 职场文书
小学清明节活动总结
2014/07/04 职场文书
出国签证在职证明范本
2014/11/24 职场文书
2014年图书室工作总结
2014/12/09 职场文书
家长会欢迎词
2015/01/23 职场文书
综合实践活动报告
2015/02/05 职场文书
考勤制度通知
2015/04/25 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL