当前位置: 首页 > news >正文

Python Opencv实践 - 二维码和条形码识别

        使用pyzbar模块来识别二维码和条形码。ZBar是一个开源软件,用来从图像中读取条形码,支持多种编码,比如EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5以及二维码。

        pyzbar是python封装ZBar的模块,我们用它来做条形码和二维码的识别。

        安装方法:

        

平台安装方法
Windows

使用pip安装即可

pip install pyzbar

Ubuntu

sudo apt-get install libzbar-dev

pip install zbar

参考:

ubuntu中安装zbar_ubuntu 安装libzbar依赖-CSDN博客

        python识别二维码并绘制边框和文字的代码:

import matplotlib.pyplot as plt
import numpy as np
import cv2 as cv
from pyzbar.pyzbar import decode#读取二维码图像
img = cv.imread('../../SampleImages/QRCodes.jpg')QRCodes = decode(img)
for QRCode in QRCodes:print(QRCode)stringData = QRCode.data.decode('utf-8')print("二维码字符串是:\"" + stringData + "\"")#绘制出二维码边框points = np.array([QRCode.polygon], np.int32)#numpy reshape: https://blog.csdn.net/DocStorm/article/details/58593682points = points.reshape((-1,1,2))cv.polylines(img, [points], True, (0,255,0), 5)rectPoints = QRCode.rectcv.putText(img, stringData, (rectPoints[0], rectPoints[1]), cv.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,255), 2)plt.imshow(img[:,:,::-1])

运行结果(最后的二维码是残缺的,因此未识别): 

        识别条形码的代码和识别二维码的代码是一样的:

#读取条形码图像
img = cv.imread('../../SampleImages/BARCodes.png')BARCodes = decode(img)
for BARCode in BARCodes:print(QRCode)stringData = BARCode.data.decode('utf-8')print("条形码字符串是:\"" + stringData + "\"")#绘制出二维码边框points = np.array([BARCode.polygon], np.int32)#numpy reshape: https://blog.csdn.net/DocStorm/article/details/58593682points = points.reshape((-1,1,2))cv.polylines(img, [points], True, (0,255,0), 5)rectPoints = BARCode.rectcv.putText(img, stringData, (rectPoints[0] - 20, rectPoints[1] - 5), cv.FONT_HERSHEY_SIMPLEX, 1, (0,0,255), 2)plt.imshow(img[:,:,::-1])

         识别结果:

http://www.lryc.cn/news/238460.html

相关文章:

  • 树莓派的的串口通信协议
  • DAY60 84.柱状图中最大的矩形
  • 你知道Linux操作系统的前世今生吗?Linux系统又该如何搭建呢?
  • 674. 最长连续递增序列
  • DS5上ARM编译器样例工程改为GCC编译
  • 关于Unity Time.deltaTime的理解和使用
  • Vue3 配置全局 scss 变量
  • 45.120.101.X 如何找出网站建设中弱点和漏洞
  • linux 下打印堆栈信息 jstack pstack gstack 有啥区别?分别的使用场景是啥?
  • Vue 3实战:打造交互丰富的任务管理应用
  • python之列表
  • 想要保护服务器的安全,使用哪个软件比较好?
  • gitlab图形化界面使用
  • Vue使用基本教程(基本介绍及对比,初步使用,构建项目,编辑器等)
  • 基恩士软件的基本操作(四,快速编辑plc技巧)
  • 通达信的ebk文件
  • 城市易涝点怎么安装万宾科技内涝积水监测仪?
  • css取消移动端长按元素背景色
  • inBuilder低代码平台新特性推荐-第九期
  • C语言——递归实现汉诺塔游戏
  • 使用MONAI轻松加载医学公开数据集,包括医学分割十项全能挑战数据集和MedMNIST分类数据集
  • dvwa 代码注入impossible代码审计
  • 909-2015-T1
  • selenium下载安装对应的chromedriver并执行
  • 1.什么是Angular?
  • Qt ListWidget
  • 微服务实战系列之加密RSA
  • Centos 里面为什么有的磁盘命名/dev/vda 有的是/dev/sda ?
  • P9232 [蓝桥杯 2023 省 A] 更小的数(区间DP)
  • 【ArcGIS Pro二次开发】(77):ArcGIS Pro中图层的获取与解析