zoukankan      html  css  js  c++  java
  • python二维码模块(qrcode)

    qrcode模块安装

    运行命令行工具(cmd),使用pip安装工具分别安装qrcode。

    pip install qrcode 

    先来个简单的例子

    import qrcode
    
    # 二维码内容
    data = "hello world"
    # 生成二维码
    img = qrcode.make(data=data)
    # 直接显示二维码
    img.show()
    # 保存二维码为文件
    # img.save("hello.jpg")

    效果

    我们来修改配置等

    import qrcode
    
    # 二维码内容
    data = "hello world"
    
    qr = qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_L,#二维码的纠错范围
        box_size=10,# 每个点(方块)中的像素个数
        border=4#二维码距图像外围边框距离,默认为4,而且相关规定最小为4
    )
    
    qr.add_data(data)
    qr.make(fit=True)
    
    # 生成二维码
    img = qr.make_image()
    # 直接显示二维码
    img.show()
    # 保存二维码为文件
    # img.save("hello.jpg")

     安装pyzbar

    pip install pyzbar

    来测试

    import pyzbar.pyzbar as pyzbar
    from PIL import Image,ImageEnhance
    
    
    image = "hello.jpg"
    
    img = Image.open(image)
    
    #img = ImageEnhance.Brightness(img).enhance(2.0)#增加亮度
    
    #img = ImageEnhance.Sharpness(img).enhance(17.0)#锐利化
    
    #img = ImageEnhance.Contrast(img).enhance(4.0)#增加对比度
    
    #img = img.convert('L')#灰度化
    
    img.show()
    
    barcodes = pyzbar.decode(img)
    
    for barcode in barcodes:
        barcodeData = barcode.data.decode("utf-8")
        print(barcodeData)

    测试一下

    python3 + opencv +pyzbar 摄像头检测二维码并获取二维码内容

    https://blog.csdn.net/zx66zx/article/details/82785334

    # coding:utf8
     
    import cv2
    import pyzbar.pyzbar as pyzbar
     
    def decodeDisplay(image):
        barcodes = pyzbar.decode(image)
        for barcode in barcodes:
            # 提取条形码的边界框的位置
            # 画出图像中条形码的边界框
            (x, y, w, h) = barcode.rect
            cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
     
            # 条形码数据为字节对象,所以如果我们想在输出图像上
            # 画出来,就需要先将它转换成字符串
            barcodeData = barcode.data.decode("utf-8")
            barcodeType = barcode.type
     
            # 绘出图像上条形码的数据和条形码类型
            text = "{} ({})".format(barcodeData, barcodeType)
            cv2.putText(image, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,
                        .5, (0, 0, 125), 2)
     
            # 向终端打印条形码数据和条形码类型
            print("[INFO] Found {} barcode: {}".format(barcodeType, barcodeData))
        return image
     
     
    def detect():
     
        camera = cv2.VideoCapture(0)
     
        while True:
            # 读取当前帧
            ret, frame = camera.read()
            # 转为灰度图像
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            im=decodeDisplay(gray)
     
            cv2.waitKey(5)
            cv2.imshow("camera", im)
     
        camera.release()
        cv2.destroyAllWindows()
     
     
    if __name__ == '__main__':
        detect()
  • 相关阅读:
    phpcms后台进入地址(包含No permission resources错误)
    phpmyadmin上传大sql文件办法
    ubuntu彻底卸载mysql
    Hdoj 2602.Bone Collector 题解
    一篇看懂词向量
    Hdoj 1905.Pseudoprime numbers 题解
    The Python Challenge 谜题全解(持续更新)
    Hdoj 2289.Cup 题解
    Hdoj 2899.Strange fuction 题解
    Hdoj 2199.Can you solve this equation? 题解
  • 原文地址:https://www.cnblogs.com/libra13179/p/11114432.html
Copyright © 2011-2022 走看看