Python识别二维码的两种方法(cv2) |
您所在的位置:网站首页 › 树莓派opencv摄像头识别二维码的程序做相对应动作 › Python识别二维码的两种方法(cv2) |
在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”、“用Python制作动图二维码”之类的文章。而关于使用Python批量识别二维码的教程,并不多见。所以今天我会给大家分享两种批量识别二维码的Python技巧! pyzbar + PIL 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个移动设备上超流行的一种编码方式。 我们在之前的文章《轻松识别数百个快递单号》,Python的第三方模块pyzbar不仅可以识别一维条形码,也可以很方便地处理二维码的识别。 不过pyzbar库需要搭配PIL或者opencv使用,主要是为了利用Image.open()或者cv2.imread()来读取图片文件。 # pip install zbar - i https: // mirrors.aliyun.com / pypi / simple from pyzbar.pyzbar import decode from PIL import Image decocdeQR = decode(Image.open("D:/qrcode1.png")) print(decocdeQR[0].data.decode('ascii')) print("KK") 输出:123456789 这样就轻松实现了二维码的解析与识别。 cv2 另外,opencv模块其实自带二维码识别功能。 注1:对于opencv模块,安装时需要输入pip install opencv-python,但在导入的时候采用import cv2。 注2:使用opencv模块时,文件路径、图片名称都不要包含中文,否则会报错。 在交互式环境中输入如下命令: import cv2 qrcode_filename = "D:/test.jpg" qrcode_image = cv2.imread(qrcode_filename) qrCodeDetector = cv2.QRCodeDetector() data, bbox, straight_qrcode = qrCodeDetector.detectAndDecode(qrcode_image) print(data) 输出:123456789 如上所示,我们同样实现了二维码的解析与识别。在上述代码中,第四行代码中qrCodeDetector.detectAndDecode(qrcode_image)有三个返回值。其中data是解码后的内容,如我们打印输出结果所示。 ![]() bbox是指二维码轮廓的四个角,从左上角顺时针转的。而straight_qrcode是二维码的原始排列,也就是每个点是0还是255的一个矩阵,白色是255,黑色是0。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |