计算机视觉开辟了 许多可能性,最简单和最受欢迎的日常应用之一是使用二维码和条形码扫描仪。
当你在超市收银台结账时会发生什么?
收银员使用设备扫描你购物篮中的每件商品,然后将价格自动记录在系统中以生成你的账单。该设备只不过是一个二维码/条形码扫描仪,而这正是我们今天要构建的!
在深入研究代码之前,让我们快速了解一下二维码及其用途。
什么是二维码?
二维码代表快速响应码。它是一种矩阵类型代码,通常用于跟踪项目。二维码以像素的形式存储数据,这些数据对应于二进制代码,可以解释为显示实际数据。
这是二维码的基本结构。
二维码在各个领域都有应用,例如:
用户身份识别和身份验证(身份证)
跟踪单个项目(库存管理)
共享支付信息(GPay、Paytm)
分享链接、照片、媒体
二维码的主要优点之一是可以以加密形式共享数据,而无需显式透露编码数据。这可以作为额外的保护层,以防止滥用敏感信息。
与二维码非常相似的条形码也是机器可读的加密代码,但与二维码不同的是,数据以不同间距和厚度的条形形式加密。二维码被认为是 2D 条形码,因为它可以水平和垂直存储数据,而不是通常在水平方向存储数据的条形码。因此二维码比条形码更强大。
现在我们知道了什么是二维码,让我们开始使用我们的 python 代码。
导入库
对于我们的项目,我们将使用 OpenCV 来读取图像、获取视频流输入并显示我们的输出。
我们需要的主要库是pyzbar和zbar库来解码我们的加密二维码。这些是有助于解码条形码和二维码的开源 python 库。
我们还需要 NumPy 库。
进行必要的安装:
import numpy as np
from pyzbar.pyzbar import decode
import cv2
从图像扫描代码
首先,我们将借助 cv2 库读取保存在“qr1.png”中的二维码图像。然后借助 pyzbar 中的 decode 方法,让我们尝试解码我们的代码并分析结果。
这是我们将用作“qr1.png”的二维码