python实现扫描二维码并打印数据

article/2025/8/26 3:31:56

编译环境

1、操作系统:windows 10

2、语言:python 3.7.0

3、编辑器:pycharm-community-2018.2.8

4、需要提前安装的库:pyzbar、opencv-python

代码

# 首先导入本次所需要的库,最后一个csv是Python自带的csv表格操作库,这里我们需要把我们扫到的二维码信息都存入csv表格里。
import cv2
from pyzbar import pyzbar
import csv# 然后我们设置一个变量,来存放我们扫到的码的信息,我们每次扫描一遍都会要检测扫描到的码是不是之前扫描到的,
# 如果没有就存放到这里。接着我们调用opencv的方法来实例化一个摄像头,
# 最后我们设置一些我们存放码信息的表格的路径。
found = set()
# 打开摄像头,0代表本地摄像头
capture = cv2.VideoCapture(0,cv2.CAP_DSHOW)
# 存放数据的表格
PATH = "test.csv"
# 不停的用摄像头来采集条码,
while capture.isOpened():# 首先我们要用刚才实例化的摄像头来采集实时的照片,ret, frame = capture.read()# 用pyzbar的函数解析图像里的二维码和条形码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, 'a+',encoding='utf-8') as f:# a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。csv_write = csv.writer(f)date = [testdate]csv_write.writerow(date)found.add(testdate)#显示预览窗口cv2.imshow('Scanning', frame)#按q退出if cv2.waitKey(1) == ord('q'):break#释放摄像头
capture.release()
#释放所有显示窗口
cv2.destroyAllWindows()

问题记录

1、安装pyzabar和opencv-python

(1)终端安装,开始→运行→键入cmd,进入命令行操作界面,安装pyzbar和opencv-python。

pip install pyzbar
pip install opencv-python

安装opencv-python时报错,根据提示执行pip更新命令

python -m pip install --upgrade pip

再次输入安装命令即可安装成功

验证:python进入交互界面,输入import cv2回车不报错,基本上安装成功。

(2)在pycharm中安装并使用opencv-python

首先File → Settings → Project: untitled → Project Interpreter,点击“+”号打开Available Packages页面。

搜索opencv-python,点击下方“install Package”按钮,进行安装,提示安装成功即可。

验证:新建python脚本,输入import cv2不变红,基本上就是安装成功

同理pyzabar按照上面的步骤安装即可

2、运行报错

(1)出现警告:[ WARN:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-c2l3r8zm\opencv\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback

解决方案:capture = cv2.VideoCapture(0)改为capture = cv2.VideoCapture(0,cv2.CAP_DSHOW)

二维码在线制作网址

互联二维码 - 二维码生成器,图片文件视频二维码,微信活码互联二维码是专业的二维码服务商,提供二维码生成、美化、管理、统计等服务。可以把图片、文件、音视频等内容生成二维码,组合表单、数据统计、批量生码功能自主搭建业务系统,解决业务问题提高效率。https://www.hlcode.cn/?channel=sgshlcode01草料二维码生成器草料二维码把二维码技术变成简单实用的产品,让每个人都可以快速复用成功案例经验,自由组合内容展示、表单、批量、数据统计、美化和标签排版等功能,免费制作出能高效解决业务问题的二维码。https://cli.im/


http://chatgpt.dhexx.cn/article/fSGTDyWA.shtml

相关文章

uni-app H5+ 连接蓝牙打印机打印文字及二维码

基于Native.js 实现的连接蓝牙打印机 打印效果图核心代码测试代码运行设备及环境PS:PPS:Demo 打印效果图 核心代码 /*** Description: 蓝牙打印类 基于h5 Native.js* Author: EricLee* Date: 2020-10-14 13:53:23* Param: mod* Return: $*/export cons…

5,uniapp功能之—打印机,打印文本和二维码等,(佳博的打印机)

效果图: 思路:1,一个打印按钮,2点击按钮弹窗一个蓝牙模块,选择蓝牙进行连接,连接成功就直接进行打印了,3,打印的内容自己设置 项目结构: 上代码,打印机参数…

批量生成二维码、打印

推荐使用GoodMES云标签打印,地址为:https://t.goodmes.com/home 1、登陆后点击设计与打印——>数据表 2、需要下载云标签打印 3、下载后进行登陆 4、登陆后无需管它,放在那运行即可 5、这个时候你的云标签助手就会现在在线状态 6、点…

electron打印条形码、二维码

功能:在electron打印条形码或者二维码 在百度搜索找不到合适的博客与插件,就在github上找到一个插件 electron-pos-printer 可以一键打印图片、文本、二维码、条形码、表格 不用安装其他多余插件,亲测十分好用 1、安装 npm install ele…

佳博打印机打印条码和二维码的方法

最近项目需求连接蓝牙打印机打印小票 其中小票中有条码和二维码,很多朋友刚接触打印接的打印逻辑,看不太明白,因此我之前给各位提供现成的打印方法: 关键就是安装打印的文档 提前写好各种打印的调用发放,直接在打印模…

【C#】简单二维码制作和打印

系列文章 【C#】条码管理操作手册 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496 【C#】IIS平台下,WebAPI发布及异常处理 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836 【C#】简单二维…

一维码二维码的生成及打印

VUE条形码及二维码的生成及输出到打印机 文章目录 VUE条形码及二维码的生成及输出到打印机1. 条形码的生成2. 二维码的生成3. 输出打印4. 将代码提取一下 1. 条形码的生成 安装插件 npm install jsbarcode --save github地址: https://github.com/lindell/JsBarcode…

C#二维码的生成及打印

窗体设计显示图 一&#xff0c;生成二维码 /// <summary>/// 生成二维码/// </summary>/// <param name"text">内容</param>/// <param name"width">宽度</param>/// <param name"height">高度</p…

生成二维码,并且打印

生成二维码&#xff0c;并且打印出来 加入依赖 //二维码依赖 npm install --save qrcodejs2 //打印依赖 npm install vue-print-nb --save在mian文件夹中使用引入并使用&#xff0c;或者按需引入 //打印依赖 import Print from vue-print-nb Vue.use(Print)本次二维码是按需引…

二维码打印

1. 二维码简介 二维码&#xff08;2-dimensional bar code&#xff09;&#xff0c;又称二维条码&#xff0c;它是用特定的几何图形按一定规律在平面&#xff08;二维方向&#xff09;上分布的黑白相间的图形&#xff0c;是所有信息数据的一把钥匙。在现代商业活动中&…

vue生成条形码和二维码并打印

文章目录 前言一、生成条形码二、生成二维码三、效果图四、打印 前言 最近有一个需求&#xff0c;需要将产品信息生成标签&#xff0c;每个信息生成一个条形码&#xff0c;拿到所有数据生成二维码&#xff0c;最后打印标签。 一、生成条形码 使用jsbarcode&#xff0c;直接in…

vue二维码生成、打印及识别

生成二维码 引入QRCode模块 npm install --save qrcode import QRCode from qrcode; 页面代码 批量创建二维码及打印&#xff0c;所以加了个v-for <div id"printDiv"/**后面打印用到的区域id*/ :disabled"hussar_20Disabled" ref"hussar_20Ref&quo…

如何将内网ip映射到外网

这个百度经验上就有&#xff0c;不过对于着急使用的我来说&#xff0c;差了最后一步。所以还是一起记上吧。 第一步 首先登陆你的路由器&#xff0c;就改密码那个。一般就用浏览器直接打开192.168.1.1就可以&#xff0c;账号密码有可能是 admin admin吧&#xff0c;默认可能是…

VMWare虚拟机局域网网络配置,主机访问虚拟机上的网站(端口映射)

文章目录 1 problem2 背景知识3 配置主机网络4 配置虚拟机网络 1 problem 如题&#xff0c;现在虚拟机的80端口和8080端口都有一个网站&#xff0c;我们想要在主机访问它。 2 背景知识 VmWare支持3种网络连接模式。 1、桥接模式&#xff1a; 所谓桥接就是把两个本来分开…

映射公网的几种方式

转载自&#xff1a;http://blog.csdn.net/sadshen/article/details/48240519 这篇文章花了好几天&#xff0c;系统地梳理出了映射公网的几种方式。虽然是针对微信开发的外网服务器来寻找解决方案&#xff0c;但这个知识梳理可能会在其他地方也受益。平常我也有用TeamViewer&…

VMware NAT端口映射 外网可以访问内网虚拟机

我想尝试的是利用本机的ipport来访问虚拟机上的web服务器&#xff0c;因为这样的话&#xff0c;我就能够将我的web服务器部署成为一个能让外网访问的服务器了&#xff0c;首先说下我的环境&#xff1a; 主机&#xff1a;系统win7&#xff0c;ip地址172.18.186.210 虚拟机版本是…

如何把内网IP映射到公网IP

鸽子出品 2017-12-05 22:28:22 我们讲了如何搭建网站&#xff0c;可是有很多小伙伴私信跟我说怎么映射&#xff0c;今天我就教大家如何把内网地址映射到公网&#xff01; 我们所需要的工具有&#xff1a; 内网IP&#xff08;这个是品&#xff0c;也是必有的&#xff01;&…

简单内网映射到公网方法--免费

我是一名Android API Player&#xff0c;最近公司需要做微信公众号二次开发&#xff0c;我跟着学学&#xff0c;公司后台.net。 我mac安装windows之后用vs感觉太差了&#xff0c;可能是我的mac要淘汰了吧。 所以我决定用java后台来跟着做。 仔细一想我没有服务器啊。 再仔细…

本地主机搭建服务器后如何让外网访问?快解析内网端口映射

本地主机搭建应用、部署服务器后&#xff0c;在局域网内是可以直接通过计算机内网IP网络地址进行连接访问的&#xff0c;但在外网电脑和设备如何访问呢&#xff1f;由于内网环境下&#xff0c;无法提供公网IP使用&#xff0c;外网访问内网就需要一个内外网转换的介质。这里介绍…

内网和外网之间的通信(端口映射原理)

内网和外网之间的通信&#xff08;端口映射原理&#xff09; 首先解释一下“内网”与“外网”的概念&#xff1a; 内网&#xff1a;即所说的局域网&#xff0c;比如学校的局域网&#xff0c;局域网内每台计算机的IP地址在本局域网内具有互异性&#xff0c;是不可重复的。但两…