使用 OpenCV 构建带有二维码扫描仪的用户认证系统

计算机视觉开辟了 许多可能性,最简单和最受欢迎的日常应用之一是使用二维码和条形码扫描仪。

08d765ca9495586a91adab499d98615f.png

当你在超市收银台结账时会发生什么?

收银员使用设备扫描你购物篮中的每件商品,然后将价格自动记录在系统中以生成你的账单。该设备只不过是一个二维码/条形码扫描仪,而这正是我们今天要构建的!

在深入研究代码之前,让我们快速了解一下二维码及其用途。

什么是二维码?

二维码代表快速响应码。它是一种矩阵类型代码,通常用于跟踪项目。二维码以像素的形式存储数据,这些数据对应于二进制代码,可以解释为显示实际数据。

这是二维码的基本结构。

6cf5a4ccfa4cfb7441c0bf975a4ca0bb.png

二维码在各个领域都有应用,例如:

  1. 用户身份识别和身份验证(身份证)

  2. 跟踪单个项目(库存管理)

  3. 共享支付信息(GPay、Paytm)

  4. 分享链接、照片、媒体

二维码的主要优点之一是可以以加密形式共享数据,而无需显式透露编码数据。这可以作为额外的保护层,以防止滥用敏感信息。

与二维码非常相似的条形码也是机器可读的加密代码,但与二维码不同的是,数据以不同间距和厚度的条形形式加密。二维码被认为是 2D 条形码,因为它可以水平和垂直存储数据,而不是通常在水平方向存储数据的条形码。因此二维码比条形码更强大。

现在我们知道了什么是二维码,让我们开始使用我们的 python 代码。

导入库

对于我们的项目,我们将使用 OpenCV 来读取图像、获取视频流输入并显示我们的输出。

我们需要的主要库是pyzbarzbar库来解码我们的加密二维码。这些是有助于解码条形码和二维码的开源 python 库。

我们还需要 NumPy 库。

进行必要的安装:

import numpy as np
from pyzbar.pyzbar import decode
import cv2

从图像扫描代码

首先,我们将借助 cv2 库读取保存在“qr1.png”中的二维码图像。然后借助 pyzbar 中的 decode 方法,让我们尝试解码我们的代码并分析结果。

这是我们将用作“qr1.png”的二维码

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值