精华内容
下载资源
问答
  • Python二维码应用(一)QRcode二维码生成&识别

    万次阅读 多人点赞 2019-01-05 20:35:39
    基于Python的二维码实验一、机器视觉之QRcode二、基于Python的QRcodetest(一)配置环境(二)生成自己的二维码(三)识别二维码三、调用opencv库摄像头识别图像 一、机器视觉之QRcode 问:什么是QRcode呢? 答...

    一、机器视觉之QRcode

    问:什么是QRcode呢?
    答:二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它能将数字、英文字母、汉字、日文字母、特殊符号(如空格,%,/ 等)、二进制等信息记录到一个正方形的图片中。
    因此,在转换的过程中,离不开编码压缩方式。在许多种类的二维条码中,常用的码制有:Data Matrix,Maxi Code,Aztec,QR Code,Vericode,PDF417,Ultracode,Code 49,Code 16K等。
    二维码在现实生活中的应用越来与普遍,归功于 QR code 码制的流行。我们常说的二维码就是它,所以,二维码又被称为 QR code。
    QR code 是一种矩阵式二维条码(又称棋盘式二维条码)。它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。
    我们的目的是要使用 Python 生成 QR 码,那我们需要先了解二维码(QR 码)的结构。根据标准(ISO/IEC 18004),我们可以了解到 QR 码结构如下:
    在这里插入图片描述
    二维码的绘制大概过程如下:
    在二维码的左上角、左下角、右上角绘制位置探测图形,位置探测图形一定是一个 7x7 的矩阵;
    (1)绘制校正图形,校正图形一定是一个 5x5 的矩阵;
    (2)绘制两条连接三个位置探测图形的定位图形;
    (3)在上述图片的基础上,继续绘制格式信息;
    (4)接着绘制版本信息;
    (5)填充数据码和纠错码到二维码图中;
    (6)最后绘制蒙版图案。因为按照上述方式填充内容,可能会出现大面积空白或黑块的情况,导致扫描识别十分困难。所以需要对整个图像与蒙版进行蒙版操作(Masking),蒙版操作即为异或 XOR 操作。在这一步,我们可以将数据排列成各种图片。

    问:主要运用qrcode库文件、这是个什么东东呢?
    答: 这里给一篇博客有详细叙述:Python生成二维码

    开源库import qrcode具体使用方法:
    编码:

    #原始二维码编码
    import qrcode
    img = qrcode.make('helloworld')
    #带图片的编码方式
    qr = qrcode.QRCode(
        version=5,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=8,
        border=4)
    

    解码:

    #调用decode()的解码函数
    def decode_qr_code(code_img_path):
        if not os.path.exists(code_img_path):
            raise FileExistsError(code_img_path)
        # Here, set only recognize QR Code and ignore other type of code
        return pyzbar.decode(Image.open(code_img_path), symbols=[pyzbar.ZBarSymbol.QRCODE])
    

    二、基于Python的QRcodetest

    环境:python3.7+zbar+qrcode

    (一)配置环境

    打开cmd、pip分别安装以下库文件:(zxing也是一个强大的二维码开源库文件,建议安装)

    pip install opencv-python
    pip install numpy
    pip install pillow
    pip install myqr
    pip install qrcode
    pip install zxing
    

    tips:记得安装完成后,如果是eclipse要重新启动一次才能加载进来

    (二)生成自己的二维码

    1 MyQr制作gif二维码:

    同目录下放置一张gif格式图片
    在这里插入图片描述

    在这里插入图片描述 在这里插入图片描述

    源码:

    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    from MyQR import myqr
    myqr.run(
        # 在命令后输入链接或者句子作为参数,然后在程序的当前目录中产生相应的二维码图片文件,默认命名为“qrcode.png”
        words='helloworld',
        version=1,  # 设置容错率为最高默认边长是取决于你输入的信息的长度和使用的纠错等级;而默认纠错等级是最高级的H
        level='H',  # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
        picture='test.gif',  # 用来将QR码图像与一张同目录下的图片相结合,产生一张黑白图片,格式可以是.jpg, .png, .bmp, .gif
        colorized=True,  # 可以使产生的图片由黑白(False)变为彩色(True)的
        contrast=1.0,  # 用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。
        brightness=1.0,  # 用来调节图片的亮度
    )
    

    2 qrcode制作带图片的二维码:
    新建工程QRcodeTest;新建PyDev包,命名为MakeMyQRcode:
    在这里插入图片描述

    因为我想做出一个漂亮简单一点的code,所以首先在目录文件下贴入一张图片,命名为QRcodeCenter,like this(左:成果图,右:准备中心图片):
    在这里插入图片描述 在这里插入图片描述

    源码:

    '''
    ==============================
    test1:生成二维码及查看
    ==============================
    '''
    from PIL import Image
    import qrcode
    
    qr = qrcode.QRCode(
        version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4)
    qr.add_data("这里是二维码信息!")
    qr.make(fit=True)
    
    img = qr.make_image()
    img = img.convert("RGBA")
    
    icon = Image.open("QRcodeCenter.jpg")  # 这里是二维码中心的图片
    
    img_w, img_h = img.size
    factor = 4
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    
    icon_w, icon_h = icon.size
    if icon_w > size_w:
        icon_w = size_w
    if icon_h > size_h:
        icon_h = size_h
    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    
    w = int((img_w - icon_w) / 2)
    h = int((img_h - icon_h) / 2)
    icon = icon.convert("RGBA")
    img.paste(icon, (w, h), icon)
    img.show()   # 显示图片,可以通过save保存
    

    (三)识别二维码

    在工程QRcodeTest;新建PyDev包,命名为ScanQRcode:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述 在这里插入图片描述
    源码:

    # -*- coding:utf-8 -*-
    
    '''
    ====================================
    test2:生成二维码保存及对二维码解码输出
    ====================================
    '''
    import os
    import qrcode
    from PIL import Image
    from pyzbar import pyzbar
    
    
    def make_qr_code(content, save_path=None):
        qr_code_maker = qrcode.QRCode(version=5,
                                      error_correction=qrcode.constants.ERROR_CORRECT_M,
                                      box_size=8,
                                      border=4,
                                      )
        qr_code_maker.add_data(data=content)
        qr_code_maker.make(fit=True)
        img = qr_code_maker.make_image(fill_color="black", back_color="white")
        if save_path:
            img.save(save_path)
        else:
            img.show()  # 中间图不显示
    
    
    def make_qr_code_with_icon(content, icon_path, save_path=None):
        if not os.path.exists(icon_path):
            raise FileExistsError(icon_path)
    
        # First, generate an usual QR Code image
        qr_code_maker = qrcode.QRCode(version=5,
                                      error_correction=qrcode.constants.ERROR_CORRECT_H,
                                      box_size=8,
                                      border=4,
                                      )
        qr_code_maker.add_data(data=content)
        qr_code_maker.make(fit=True)
        qr_code_img = qr_code_maker.make_image(
            fill_color="black", back_color="white").convert('RGBA')
    
        # Second, load icon image and resize it
        icon_img = Image.open(icon_path)
        code_width, code_height = qr_code_img.size
        icon_img = icon_img.resize(
            (code_width // 4, code_height // 4), Image.ANTIALIAS)
    
        # Last, add the icon to original QR Code
        qr_code_img.paste(icon_img, (code_width * 3 // 8, code_width * 3 // 8))
    
        if save_path:
            qr_code_img.save(save_path)  # 保存二维码图片
            qr_code_img.show()  # 显示二维码图片
        else:
            print("save error!")
    
    
    def decode_qr_code(code_img_path):
        if not os.path.exists(code_img_path):
            raise FileExistsError(code_img_path)
    
        # Here, set only recognize QR Code and ignore other type of code
        return pyzbar.decode(Image.open(code_img_path), symbols=[pyzbar.ZBarSymbol.QRCODE])
    
    
    if __name__ == "__main__":
        print("============QRcodetest===============")
        print("         1、Make a QRcode            ")
        print("         2、Scan a QRcode            ")
        print("=====================================")
        print("1、请输入编码信息:")
        code_Data = input('>>:').strip()
        print("正在编码:")
        # ==生成带中心图片的二维码
        make_qr_code_with_icon(
            code_Data, "QRcodeCenter.jpg", "qrcode.png")  # 内容,center图片,生成二维码图片
        print("图片已保存,名称为:qrcode.png")
        results = decode_qr_code("qrcode.png")
        print("2、正在解码:")
        if len(results):
            print("解码结果是:")
            print(results[0].data.decode("utf-8"))
        else:
            print("Can not recognize.")
    

    三、调用opencv库摄像头识别图像

    (一)用opencv找出(条形码&二维码)位置

    opencv抠图教程
    按照教程一步步调试运行(这里用一张条形码和一张二维码进行测试):

    • QRcodetest项目下新建ScanQRcode.py
      在这里插入图片描述
    • 并保存两张图片在项目目录下:分别为qrcode.pngtest2.jpg
      在这里插入图片描述
      运行测试:(不支持二维码)
      qrcode.png:
      在这里插入图片描述
      test2.jpg:
      在这里插入图片描述
      遇到问题:
      都只识别了部分条码,抠图也不是很成功!而且不能识别二维码!
      在这里插入图片描述

    源码:

    # -*- coding: UTF-8 -*-
    '''
    ==============================
    test3:找出图片中的条形码或二维码
    (ps.仅识别条形码成功)
    ==============================
    '''
    import numpy as np
    import argparse
    import cv2
    
    print("请输入解码图片完整名称:")
    code_name = input('>>:').strip()
    print("正在识别:")
    #image = cv2.imread("test2.jpg")
    image = cv2.imread(code_name)
    # 灰度
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    # 使用opencv自带的Sobel算子进行过滤
    gradX = cv2.Sobel(gray, ddepth=cv2.cv2.CV_32F, dx=1, dy=0, ksize=-1)
    gradY = cv2.Sobel(gray, ddepth=cv2.cv2.CV_32F, dx=0, dy=1, ksize=-1)
    
    # 将过滤得到的X方向像素值减去Y方向的像素值
    gradient = cv2.subtract(gradX, gradY)
    # 先缩放元素再取绝对值,最后转换格式为8bit型
    gradient = cv2.convertScaleAbs(gradient)
    # 均值滤波取二值化
    blurred = cv2.blur(gradient, (9, 9))
    (_, thresh) = cv2.threshold(blurred, 225, 255, cv2.THRESH_BINARY)
    
    # 腐蚀和膨胀的函数
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (21, 7))
    closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)
    closed = cv2.erode(closed, None, iterations=4)
    closed = cv2.dilate(closed, None, iterations=4)
    
    # 找到边界findContours函数
    (_, cnts, _) = cv2.findContours(closed.copy(),
                                    cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    # 计算出包围目标的最小矩形区域
    c = sorted(cnts, key=cv2.contourArea, reverse=True)[0]
    rect = cv2.minAreaRect(c)
    box = np.int0(cv2.boxPoints(rect))
    
    #======显示=======
    cv2.drawContours(image, [box], -1, (0, 255, 0), 3)
    cv2.imshow("ScanQRcodeTest", image)
    cv2.waitKey(0)
    

    (二)调用解码函数进行解码

    • QRcodetest项目下新建ScanInvedio.py
      在这里插入图片描述
      运行测试:(不支持条形码)

    因为我自身电脑摄像头设置,颜色有点问题,请忽略

    在这里插入图片描述 在这里插入图片描述

    源码:

    '''
    ================================
    test4:识别摄像头中的条形码或二维码
    (ps.仅识别二维码码成功)
    ================================
    '''
    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), (225, 225, 225), 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, (225, 225, 225), 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)
            # 如果按键q则跳出本次循环
            if cv2.waitKey(10) & 0xFF == ord('q'):
                break
        camera.release()
        cv2.destroyAllWindows()
        
    if __name__ == '__main__':
        detect()
    

    大功告成!

    展开全文
  • 什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。...

    前言

    什么是二维码?

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。二维码图片生成的相关细节,类似于一个密码算法。

    关于QR Code Specification,可参看这个PDF:http://raidenii.net/files/datasheets/misc/qr_code.pdf 

    基础知识

    首先,我们先说一下二维码一共有40个尺寸。官方叫版本Version。Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version 3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21(V是版本号) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。

    下面我们看看一个二维码的样例:图片

    定位图案

    • Position Detection Pattern是定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了。

    • Timing Patterns也是用于定位的。原

    展开全文
  • 目录一、什么是二维码:二、常用的码制三、为什么叫二维码四、二维码为什么是黑白相间的?五、QR CODE 介绍六、QR码纠错功能七、QR码的信息量和版本八、具体实现 一、什么是二维码二维码 (2-dimensional bar ...

    一、什么是二维码:

    二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)
    分布的黑白相间的图形记录数据符号信息的。

    二、常用的码制

    Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。

    三、为什么叫二维码

    二维码的名称是相对与一维码来说的:

    比如以前的条形码,只有横向的竖条状信息,所以也叫“一维码”。

    二维码呢,则是横向纵向都有信息,所有叫“二维码”。

    二维码优点有:

    存储的数据量更大;可以包含数字、字符,及中文文本等混合内容;有一定的容错性(在部分损坏以后可以正常读取);空间利用率高等。

    二维码中,最流行莫过于QR CODE。

    四、二维码为什么是黑白相间的?

    因为黑色表示二进制的“1”,白色表示二进制的“0”。

    我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中。

    制作二维码输入的信息可以分成三类:

    ​ 文本信息,比如名片信息;

    ​ 字符信息,比如网址、电话号码;

    ​ 图片信息,甚至还可以包括简短的视频。

    数据信息是怎么被编入的呢?

    信息输入后,首先要选择一种信息编码的码制。现在常见的二维码都是以QR码作为编码的码制。QR码是矩阵式二维码,它是在一个矩形空间内,通过黑、白像素在矩阵中的不同分布,来进行编码的。我们知道电脑使用二进制(0和1)数来贮存和处理数据,而在二维码中,用黑白矩形表示二进制数据我们肉眼能看到的黑色表示的是二进制“1”,白色表示二进制的“0”,黑白的排列组合确定了矩阵式二维条码的内容,以便于计算机对二维码符号进行编码和分析。

    五、QR CODE 介绍

    QR(Quick-Response) code是被广泛使用的一种二维码,解码速度快。它可以存储多用类型
    在这里插入图片描述
    如上图时一个qrcode的基本结构,其中:
    位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;
    校正图形:规格确定,校正图形的数量和位置也就确定了;
    格式信息:表示改二维码的纠错级别,分为L、M、Q、H;
    版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21×21(版本1),到177×177(版本40),每一版本符号比前一版本 每边增加4个模块。
    数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。
    简要的编码过程:

    1. 数据分析:确定编码的字符类型,按相应的字符集转换成符号字符; 选择纠错等级,在规格一定的条件下,纠错等级越高其真实数据的容量越小。
    2. 数据编码:将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。其实知道这个数据码字序列就知道了二维码的数据内容。
      在这里插入图片描述

    QR码可以从任意方向读取:

    QR码从360°任一方向均可快速读取。其奥秘就在于QR码中的3处定位图案,可以帮助QR码不受背景样式的影响,实现快速稳定的读取。
    在这里插入图片描述

    提示:

    QR码是日本产的二维码,因此非常适合处理日文字母和汉字。QR码字集规格定义是按照日本标准“JIS第一级和第二级的汉字”制定的,因此在日语处理方面,每一个全角字母和汉字都用13比特的数据处理,效率较高,与其他二维码相比,可以多存储20%以上的信息。

    六、QR码纠错功能

    QR码具有“纠错功能”。即使编码变脏或破损,也可自动恢复数据。这一“纠错能力”具备4个级别,用户可根据使用环境选择相应的级别。调高级别,纠错能力也相应提高,但由于数据量会随之增加(对应二维码里包含的错误校验信息增加),编码尺寸也也会变大,图形也会变密。
    用户应综合考虑使用环境、编码尺寸等因素后选择相应的级别。 在工厂等容易沾染赃物的环境下,可以选择级别Q或H,在不那么脏的环境下,且数据量较多的时候,也可以选择级别L。一般情况下用户大多选择级别M(15%)。
    在这里插入图片描述
    那是怎么修正错误呢?

    比如我要存一百个数字,那可以额外加一个这一百个数字的和,如果有一个数字缺失,那根据这个和求出,这个就是百分之一的可被修正。如果想两个缺失能被复原就需要再加一些参数。所以信息量就增加了,对应图形就越来越密了。

    七、QR码的信息量和版本

    QR码设有1到40的不同版本,每个版本都具备固有的码元结构(码元数)。
    码元是指构成QR码的方形黑白点。
    码元结构是指二维码中的码元数。从版本1(21码元×21码元)开始,在纵向和横向各自以4码元为单位递增,一直到版本40(177码元×177码元)。
    在这里插入图片描述
    QR码的各个版本结合数据量、字符类型和纠错级别,均设有相对应的最多输入字符数。也就是说,如果增加数据量,则需要使用更多的码元来组成QR码,QR码就会变得更大,更密。

    八、具体实现

    PHP QR Code文档地址
    PHP QR Code下载地址

    // 通过引用PHP QR Code类库,最简单的调用方式
    // 必须开启支持GD2扩展库支持
    include "qrlib.php";
    $PNG_WEB_DIR = 'temp/';
    // 设置二维码图片缓存路径
    $PNG_TEMP_DIR = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'temp' . DIRECTORY_SEPARATOR;
    // 如果二维码图片缓存路径不存在,则需要重新创建
    if (!file_exists($PNG_TEMP_DIR)) {
        mkdir($PNG_TEMP_DIR, 0777);
    }
    $filename = $PNG_TEMP_DIR . 'test.png';
    // 设置二维码图片纠错级别
    $errorCorrectionLevel = 'L';
    if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L', 'M', 'Q', 'H'))) {
        $errorCorrectionLevel = $_REQUEST['level'];
    }
    $filename = $PNG_TEMP_DIR . 'test' . md5($_REQUEST['data'] . '|' . $errorCorrectionLevel . '|' . $matrixPointSize) . '.png';
        QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 10);
    echo '<img src="' . $PNG_WEB_DIR . basename($filename) . '" /><hr/>';
    // 设置二维码图片大小
    $matrixPointSize = 4;
    if (isset($_REQUEST['size'])) {
        $matrixPointSize = min(max((int) $_REQUEST['size'], 1), 10); // 做一个限制大小,最小为1,最大为10
    }
    
    // 基准测试;生成耗时等
    QRtools::timeBenchmark();
    
    // 参数$text表示生成二位的的信息文本;
    // 参数$outfile表示是否输出二维码图片文件,默认否;
    // 参数$level表示容错率;分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
    // 参数$size表示生成图片大小,默认是3// 参数$margin表示二维码周围边框空白区域间距值;
    // 参数$saveandprint表示是否保存二维码并显示
    QRcode::png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)

    QR Code 其它示例

    参考文章1
    参考文章2

    展开全文
  • 二维码发展 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这...
    展开全文
  • 花了2天时间终于把二维码识别做出来了,不过效果一般,后面会应用在ROS辅助定位上,废话少说先上图:具体过程参考了这位大神的博客:...先将读入的摄像头frame转换成灰度图:gray = cv2.cvtColor(image_path, c...
  • 关于QR二维码

    千次阅读 2017-02-19 17:32:01
    一:什么是二维码二维码 (2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上) 分布的黑白相间的图形记录数据符号信息的。 在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi ...
  • 交通一卡通二维码支付技术要求

    千次阅读 2018-11-08 12:42:25
    交通一卡通二维码支付技术要求 范围 本技术要求规定了交通一卡通二维码(以下简称“二维码”)支付的应用场景、系统框架及流程、二维码数据结构、信息接口、安全要求、终端要求、手机客户端要求等。 本技术要求...
  • 使用PYTHON生成二维码

    2021-03-13 13:51:16
    在工作中经常需要构造二维码,网上二维码生成工具有些时候不能达到我们的效果,比如批量生成二维码,经常需要注册,所以可以考虑自己生成制作二维码。 1、qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL ...
  • 条码的输出等级是条码能否被识别扫描的关键,条码的等级分为“A B C D F”五个等级,A是最高级别,一些出口用的条码都要求达到A,主要是保证条码的扫描识别率。 很多印刷厂或者广告公司的同行经常使用的方式...
  • 二维码 发票

    2019-02-26 15:42:39
    求@TOC 欢迎使用Markdown编辑器 ...我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来...
  • python生成二维码

    2020-12-08 12:49:25
    1.python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库。首先,我们要安装三个模块,qrcode,image,PIL。pip install qrcodepip install imagePIL:Python Imaging Library,已经是...
  • 二维码全新认识

    千次阅读 2016-09-14 10:09:31
    目前二维码已经覆盖了大街小巷,到处可见,仿佛世界已经是二维码的时间!如果人类可以到达外太空,那么二维码估计会在那里燃烧!!今天打算对二维码做一个全面的了解。 PS:本文内容摘录至网上!只是一个整理的文章...
  • 使用Qt绘制二维码 QRcode

    千次阅读 2019-01-17 16:22:21
    二维码自从出现以来,已经极大地改变了我们的生活方式,它能容纳一些简短的信息,却又不那么简短,以至于很多场合都能使用二维码作为信息的载体。一个月以前,有个老师跟我提过一句,如果可以在上机实验时使用二维码...
  • 浅析二维码基本原理

    千次阅读 2020-10-21 16:08:01
    举个例子:上述的Version 5-Q纠错:需要4个Blocks(2个Blocks为一组,共两组),头一组的两个Blocks中各15个字节+ 各 9个字节的纠错码(注:表中的codewords就是一个8bits的字节,c = k + 2 * r)。 下图给一个5-...
  • 模拟二维码登录百度写在前面准备工作二维码地址登录状态获取gid登录参数代码部分二维码展示获取cookie完整代码写在后面 写在前面 前段时间写了利用BDUSS到达百度首页,这一次尝试使用二维码模拟登录,目前网上能搜到...
  • 今天突然想到二维码是如何存储信息的,手画二维码是否可行呢。于是就开始各种搜索,最终自己也利用Google的ZXing工具完成了一个生成二维码和解析二维码的简单程序。 一、 二维码生成原理(即工作原理) 二维码官方...
  • 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了...
  • 2.2 二维码 3 分类 3.1 线性堆叠式二维码 3.2 矩阵式二维码 3.3 邮政码 4 QR code二维码结构 5 QR code二维码生成流程及原理 5.1 数据编码 5.2 纠错码 5.3 最终编码 5.4 画二维码 5.5 二维码优势 6 个性...
  • 一维码与二维码对比介绍

    千次阅读 2018-11-14 21:15:41
    与其他二维码相比,其强大之处在于可容纳高达1.1千字节的数据,适用于需要存储大量数据(如照片、指纹、签名、文本、数字、图形或其他信息)的应用程序,也可用于标识危险品、电子仪器技术规格与标准化数据。...
  • 各类码图如二维码,验证码此类码图的生成,实际原理就是后台通过某种规则去生成图片流,将图片流返回给前端后,前端进行显示。后续内容将展开BufferedImage的实际应用。 二.BufferedImage 1)是码图相关的一种非常...
  • 使用python制作二维码

    2020-12-05 16:07:14
    python-qrcode是个用来生成二维码图片的第三方模块,主要依赖的是 PIL 模块和 qrcode 库。(PIL模块只支持python2.7及以下版本,python3之后无法使用,官方推荐python3.x使用pillow代替PIL模块)1.安装相关环境(以...
  • 基础——二维码的生成细节和原理

    千次阅读 2018-12-28 17:32:26
    二维码的生成细节和原理 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,...
  • 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了...
  • 媲美微信的二维码识别库

    千次阅读 2020-05-19 16:57:43
    相信大家在平常的生活中,如果遇到扫码的场景第一个想到的应该就是微信了,可以说微信使用二维码打开了移动互联网的另一扇大门,并且在扫码体验上及其优秀,本该有一定要求的扫码过程,在经过微信的优化之后,让用户...
  • 使用python生成二维码

    2020-11-21 03:30:35
    1.python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库。首先,我们要安装三个模块,qrcode,image,PIL。pip install qrcodepip install imagePIL:Python Imaging Library,已经是...
  • 二维码的生成细节和原理&源码

    千次阅读 2019-12-05 15:24:16
    转载自 《二维码的生成细节和原理》 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,...
  • 二维码实现原理

    2016-03-21 16:19:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 二维码编码规范解读

    千次阅读 2021-10-16 11:27:48
    二维码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,040
精华内容 4,016
关键字:

c级标准二维码