做二维码_利用python实现二维码生成和识别_小鹿活码(非凡微信营销)

非凡微信社群营销服务平台www.haqsl.com我们提供【社群管理裂变】【自动建群】【多群转播】【活码系统】【小程序开发】【公众号开发】【各类商城SAAS】一站式服务,各类功能提供免费体验,满意付款,如您还有其他疑问请您添加企鹅/微信1003312430方便咨询哦。
非凡社群助手——微信活码系统演示(客户活码二维码累计扫描量一千万+)
活码系统介绍:
二维码图案不变,内容可随时变更, 极大提高营销效果,基于活码技术,二维码图案更简单,扫码更加容易宣传海报、二维码印刷、商品.群.软文。
让二维码图案更简单,扫码更加容易宣传。,

在先容二维码原理之前,先说下条形码 。条形码我们都见过,就是超市收银员结账的时刻扫的谁人器械。它是一种“一维码”,竖直偏向,条码是平均的,信息只能在水平偏向上存储,而且只能由数字和字母组成。而二维码(现在常见的是QR Code,QR全称Quick Response)是一种比条形码更高级的条码花样,二维码在水平和垂直偏向都能存储信息,而且二维码能存储汉字、数字和图片等信息,因此二维码的应用领域要广得多。

然则二维码是怎么天生的呢,我们知道,计算机只能识别0和1这两个数,以是要存储在二维码的信息,计算机会将这些字符都统一转变为0和1组成的二进制数字序列,这个转化的历程叫做编码。字符在酿成只有0和1组成的数字序列后,在举行一系列优化算法后,就得到了最终的二进制编码。在最后这串编码中,一个0对应的就是一个白色小方块,一个1对应的就是一个玄色的小方块。我们把这些小方块根据8个一组,填进大方块里,这就是一个完整的,可以被手机相机识别的二维码图案了。

相比较于条形码,二维条码有一维条码没有的“定位点”和“容错机制”。不知人人有没有发现,所有的二维码都有三个小方块在边上。实在这三个方块是用来定位的,但为什么是三个呢,简单说就是三点确定一个面。若是只有一个点,经由这个点有无数个方框,两个点,有两个方框,因此就设了三个方块。以是不管你正着扫、倾斜扫、旋转180度扫,都能识别出来。”容错机制“就是在纵然没有辨识到所有的条码、或是说条码有污损时,也可以正确地还原条码上的信息。

二维码的天生

首先要先安装pillow,qrcode库,在dos窗口输入

pip install pillow
pip install qrcode

代码如下

import qrcode as qrcode
qr = qrcode.QRCode(
    version=1, #二维码的格子矩阵巨细
    error_correction=qrcode.constants.ERROR_CORRECT_Q,
    box_size=10,
    border=4,
)
qr.add_data("Hello World")#向二维码添加数据
qr.make(fit=True)
img = qr.make_image(fill_color="green", back_color="white")#更改QR的靠山和绘画颜色
img.show()# 显示二维码

运行效果


二维码的识别

需要安装opencv和pyzbar两个模块,和上面一样的操作,这里就不赘述了。

import cv2 as cv
from pyzbar import pyzbar as pyzbar


def decodeDisplay(image):
    barcodes = pyzbar.decode(image)
    for barcode in barcodes:
        # 提取二维码的界限框的位置
        # 画出图像中条形码的界限框
        (x, y, w, h) = barcode.rect
        cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)

        # 提取二维码数据为字节工具,以是若是我们想在输出图像上
        # 画出来,就需要先将它转换成字符串
        barcodeData = barcode.data.decode("UTF8")
        barcodeType = barcode.type

        # 绘出图像上条形码的数据和条形码类型
        text = "{} ({})".format(barcodeData, barcodeType)
        cv.putText(image, text, (x, y - 10), cv.FONT_HERSHEY_SIMPLEX,.5, (0, 0, 125), 2)
        # 向终端打印条形码数据和条形码类型
        print("[INFO] Found {} barcode: {}".format(barcodeType, barcodeData))
    return image


def detect():
    camera = cv.VideoCapture(0)
    while True:
        # 读取当前帧
        ret, frame = camera.read()
        # 转为灰度图像
        gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
        im = decodeDisplay(gray)
        c=cv.waitKey(5)#守候5毫秒
        cv.imshow("camera", im)
        if(c==27):#按下esc键关闭摄像头窗口
            camera.release()
            cv.destroyAllWindows()
            break

if __name__ == '__main__':
    detect()

教你使用Python制作酷炫二维码

这篇文章讲的是如何利用python制作 狂拽酷炫吊炸天的二维码,非常有趣哦! 可能你见过的二维码大多长这样:普普通通,平平凡凡,没什么特色。。。 但,如果二维码长这样呢! 或者 这样! 是不是炒鸡好看! 这篇文…

相关文章

联系我们

联系我们

17638350532

在线咨询: QQ交谈

邮箱: 1003312430@qq.com

工作时间:周一至周日,8:00-19:00,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部