前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Python开发二维码扫描工具

使用Python开发二维码扫描工具

作者头像
十里桃花舞丶
发布2023-10-16 14:09:19
2860
发布2023-10-16 14:09:19
举报
文章被收录于专栏:桥路_大数据桥路_大数据

依赖安装

调用摄像头需要使用到 OpenCV 模块,而识别二维码则需要使用到 pyzbar 模块。

代码语言:javascript
复制
pip install opencv-python
pip install pyzbar

OpenCV基本用法

1、图片读取

代码语言:javascript
复制
import cv2 as cv
img = cv.imread("1.jpg")
print(img)
  • 图片在 OpenCV 中是以 ndarray 对象存储的,ndarray 是 numpy 中的一种多维数组。
代码语言:javascript
复制
[[[237 237 237]
[237 237 237]
[183 213 242]
...
[215 227 239]
[237 237 237]
[237 237 237]]

2、显示图片

代码语言:javascript
复制
import cv2 as cv
### 读取图片
img = cv.imread("1.jpg")
### 显示图像
cv.imshow("img", img)
### 等待键盘输入,否则图片只展示一瞬间
cv.waitKey()
### 销毁窗口
cv.destroyAllWindows()

3、调用摄像头中的一帧图片

代码语言:javascript
复制
# VideoCapture函数传入视频路径时,会读取视频文件;
# 传入数字时,它会调用指定的摄像头,比如传入 0 表示调用第 0 个摄像头
import cv2 as cv
### 读取摄像头
cap = cv.VideoCapture(0)
### 读取一帧画面
ret, frame = cap.read()
### 显示读取的画面
cv.imshow("video", frame)
cv.waitKey()
cv.destroyAllWindows()

4、循环读取摄像头图片

代码语言:javascript
复制
import cv2 as cv
cap = cv.VideoCapture(0)
while True:
ret, frame = cap.read()
cv.imshow("video", frame)
cv.waitKey(10)
# 这里可以改造为按q键退出读取
# key = cv.waitKey(10)
# if key == ord('q'):
# break
cv.destroyAllWindows()

pyzbar基本用法

识别二维码中的文字

代码语言:javascript
复制
import cv2 as cv
from pyzbar import pyzbar
### 读取图片
img = cv.imread("11.png")
### 识别二维码
res = pyzbar.decode(img)
text = res[0].data.decode('utf-8')
print(text)

扫码工具实现

代码语言:javascript
复制
import cv2 as cv
from pyzbar import pyzbar

cap = cv.VideoCapture(0)
while True:
ret, frame = cap.read()
cv.imshow('qrcode', frame)
key = cv.waitKey(10)
if key == ord('q'):
break
try:
res = pyzbar.decode(frame)
text = res[0].data.decode('utf-8')
print(text)
# 当画面中没有二维码时,程序可能会报错,因此需要对解码部分进行异常处理
except Exception as e:
pass
cv.destroyAllWindows()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 依赖安装
  • OpenCV基本用法
  • pyzbar基本用法
  • 扫码工具实现
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档