• 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识别二维码并绘制边框和文字的代码:

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

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

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

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

             识别结果:

  • 相关阅读:
    【某南方·高中梦校面试】
    在云服务器上安装VNC远程桌面服务
    束搜索-binsearch
    Python自学之路--002:Python 如何生成exe可执行文件
    React中setState方法详细讲解
    制造企业如何通过APS智能排产改善“低利润”局面?
    Java方法
    APP自定义身份证相机(Android +iOS)
    windows系统 phpstudy 安装 imagick 扩展
    OS复习笔记ch11-3
  • 原文地址:https://blog.csdn.net/vivo01/article/details/134541049