精华内容
下载资源
问答
  • Python 识别二维码 及图像中色块颜色识别,根据阈值可以滤除波动情况的 干扰 Python recognizes the color of two-dimensional code and color block in image. According to the threshold value, the ...
  • Python识别二维码获取电子发票基本信息前言 前言 因工作需要,每月需要对大量的电子发票重命名,命名格式为发票代码_发票号码.pdf,几经尝试,发现同样是pdf格式的电子发票,使用pdfplumber读取出来的文字信息却有很...

    因工作需要,每月需要对大量的电子发票重命名,命名格式为发票代码_发票号码.pdf,几经尝试,发现同样是pdf格式的电子发票,使用pdfplumber读取出来的文字信息却有很大不同,一些通行费发票可以很好地识别出全部内容,非通行费的电子发票却只能读取出一部分发票信息,而且最需要的发票代码和发票号码恰恰是读取不出来的。在网上一番查找之后,最终实现通过识别电子发票左上角的二维码来读取发票代码发票号码等基本信息并对pdf文件进行重命名。

    import os
    import fitz
    from pyzbar.pyzbar import decode
    from PIL import Image
    
    def get_filepath(base_path):
        '''获取当前路径下所有的电子发票pdf文件路径'''
        file_paths = []
        file_names = os.listdir(base_path)
        for file_name in file_names:
            if file_name.endswith('.pdf'):
                file_paths.append(os.path.join(base_path, file_name))
        return file_paths
    
    def rename_pdf(file_paths):
        '''逐一对所有电子发票文件左上角的二维码识别并重命名文件'''
        for file_path in file_paths:
            result = get_qrcode(file_path)
            results = list(result.split(','))
            new_name = results[2] + "_" + results[3] + ".pdf"
            new_file_path = os.path.dirname(file_path) + '\\' + new_name       
            os.rename(file_path, new_file_path)
    
    def get_qrcode(file_path):
        '''提取pdf文件中左上角的二维码并识别'''
        pdfDoc = fitz.open(file_path)
        page = pdfDoc[0]    #只对第一页的二维码进行识别
        rotate = int(0)
        zoom_x = 3.0
        zoom_y = 3.0
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        rect = page.rect
        mp = rect.tl + (rect.br - rect.tl) * 1 / 5
        clip = fitz.Rect(rect.tl, mp)
        pix = page.getPixmap(matrix=mat, alpha=False, clip=clip)
        img = Image.frombytes("RGB", (pix.width, pix.height), pix.samples)  
        barcodes = decode(img)
        for barcode in barcodes:
            result = barcode.data.decode("utf-8")
            return result
    
    if __name__ == '__main__':
        base_path = os.getcwd()
        all_files = get_filepath(base_path)
        rename_pdf(all_files)
    
    

    虽然功能比较单一,但是不管黑猫白猫,能抓老鼠就是好猫

    参考博文: https://www.cnblogs.com/new-june/p/11995496.html

    展开全文
  • Python识别二维码条形码,用Pyzbar一招搞掂 二维码和条形码在我们的日常生活中的使用场景越来越多,使得其识别成为CV技术中的热门方向,下面介绍如何是使用 pyzbar 快速识别二维码和条形码,让您的业务快速成型

    原创声明

    本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可!


    前言

    二维码和条形码在我们的日常生活中的使用场景越来越多,使得其识别成为CV技术中的热门方向,下面介绍如何是使用 pyzbar 快速识别二维码和条形码,让您的业务快速成型。

    我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢!

    一、pyzbar 是什么?

    1. 首先需要了解下 ZBarZBar是一个开源软件套件,用于从各种来源(如视频流、图像文件和原始强度传感器)读取条形码。它支持许多流行的符号(条形码类型),包括EAN-13/UPC-AUPC-EEAN-8代码128代码39交错2/5二维码

    2. pyzbar 是通过 Python23接口,使用 ZBar 库读取一维条形码和QR码 。

    二、安装 pyzbar

    1. Windows

    在 Windows 的环境下只需要使用 pip 安装即可:

    pip install pyzbar
    

    2. Ubuntu

    sudo apt-get install libzbar-dev
    pip install zbar
    

    3、centos7

    yum install python-devel
    yum install zbar-devel
    yum install zbar
    

    三、开始识别

    代码走起:

    # -*- coding:utf-8 -*-
    """
    @author: HinGwenWoong
    @license: MIT
    """
    import datetime
    import time
    from pathlib import Path
    import numpy as np
    import cv2
    from pyzbar import pyzbar
    
    
    def get_qrcode_result(image_input, binary_max=230, binary_step=2):
        """
        获取二维码的结果
        :param image_input: 输入图片数据
        :param binary_max: 二值化的最大值
        :param binary_step: 每次递增的二值化步长
        :return: pyzbar 预测的结果
        """
        # 把输入图像灰度化
        if len(image_input.shape) >= 3:
            image_input = cv2.cvtColor(image_input, cv2.COLOR_RGB2GRAY)
    
        # 获取自适配阈值
        binary, _ = cv2.threshold(image_input, 0, 255, cv2.THRESH_OTSU)
    
        # 二值化递增检测
        res = []
        while (binary < binary_max) and (len(res) == 0):
            binary, mat = cv2.threshold(image, binary, 255, cv2.THRESH_BINARY)
            res = pyzbar.decode(mat)
            binary += binary_step
    
        return res
    
    
    if __name__ == '__main__':
    
        image_dir = Path(r"图片路径")
        total_image = 0
        success_count = 0
        for image_file in Path.iterdir(image_dir):
            if image_file.suffix not in [".jpg", ".png"]:
                # 非图片,跳过该文件
                continue
    
            # 使用 cv2.imdecode 可以读取中文路径下的图片
            image = cv2.imdecode(np.fromfile(Path(image_dir).joinpath(image_file), 
                                             dtype=np.uint8), 
                                 cv2.IMREAD_COLOR)
    
            start_time = time.time()
            result = get_qrcode_result(image, binary_max=230, binary_step=2)
    
            print(f"Got {image_file} result: {result}, "
                  f"using time : {datetime.timedelta(seconds=(time.time() - start_time))}")
    
            if len(result) > 0:
                success_count += 1
            total_image += 1
    
        print(f"total image = {total_image}, success count = {success_count}")
    
    

    结果:

    在这里插入图片描述

    可能出现的问题:

    安装完,run,出现如下报错!
    FileNotFoundError: Could not find module '你的路径\Python\Python38\site-packages\pyzbar\libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax.
    在这里插入图片描述

    解决方法:

    总结

    以上是如何使用 pyzbar 快速识别二维码和条形码的方法,感谢您看到这里!希望能够助力您的业务快速落地!

    我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢!

    参考:

    [1] pyzbar 安装
    [2] OSError: [WinError 126] Cannot find the specified module.


    授权须知

    1. 原创文章在推送一天后才可进行转载
    2. 转载文章,禁止声明原创
    3. 不允许直接二次转载,转载请根据原文链接联系作者
    4. 若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。
      但对于未注明转载来源/原文链接的文章,我将保留追述的权利。

    作者:HinGwenWoong
    一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步!
    CSDN: HinGwenWoong
    原文链接:Python识别二维码条形码?用pyzbar一招搞掂(含代码)

    1. 若需要修改文章的排版,请根据原文链接联系作者
    2. 再次感谢您的认可,转载请遵守如上转载须知!
    展开全文
  • python识别二维码工具zxing

    千次阅读 2019-10-09 15:10:10
    安装zxing ...识别二维码 import os import logging from PIL import Image import zxing #导入解析包 import random logger = logging.getLogger(__name__) #记录数据 if not logger.handler...

    安装zxing

    pip install zxing

    识别二维码

    方法一

    import zxing
    
    reader = zxing.BarCodeReader()
    barcode = reader.decode("baidu.jpg")
    print(barcode.parsed)

    方法二

    import os
    import logging
    from PIL import Image
    import zxing    #导入解析包
    import random
         
    logger = logging.getLogger(__name__)    #记录数据
         
    if not logger.handlers:
        logging.basicConfig(level = logging.INFO)
         
    DEBUG = (logging.getLevelName(logger.getEffectiveLevel()) == 'DEBUG')   #记录调式过程
         
    # 在当前目录生成临时文件,规避路径问题
    def ocr_qrcode_zxing(filename):
        img = Image.open(filename)
        ran = int(random.random() * 100000)     #设置随机数据的大小
        img.save('%s%s.jpg' % (os.path.basename(filename).split('.')[0], ran))
        zx = zxing.BarCodeReader()      #调用zxing二维码读取包
        data = ''
        zxdata = zx.decode('%s%s.jpg' % (os.path.basename(filename).split('.')[0], ran))    #图片解码
         
    # 删除临时文件
        os.remove('%s%s.jpg' % (os.path.basename(filename).split('.')[0], ran))
        if zxdata:
            logger.debug(u'zxing识别二维码:%s,内容: %s' % (filename, zxdata))
            data = zxdata
        else:
            logger.error(u'识别zxing二维码出错:%s' % (filename))
            img.save('%s-zxing.jpg' % filename)
        return data     #返回记录的内容
         
    if __name__ == '__main__':
        filename = r'test.png'
        # zxing二维码识别
        ltext = ocr_qrcode_zxing(filename)  #将图片文件里的信息转码放到ltext里面
        logger.info(u'[%s]Zxing二维码识别:[%s]!!!' % (filename, ltext))  #记录文本信息
            
    print(ltext)    #打印出二维码名字

     

    展开全文
  • python识别二维码内容

    2020-03-24 17:09:45
    from pyzbar.pyzbar import decode from PIL import Image image = 'xx.png' img = Image.open(image) barcodes = decode(img) for barcode in barcodes: url = barcode.data.decode("utf-8") ...
    from pyzbar.pyzbar import decode
    from PIL import Image
    image = 'xx.png'
    img = Image.open(image)
    barcodes = decode(img)
    for barcode in barcodes:
        url = barcode.data.decode("utf-8")
        print(url)
    展开全文
  • 关于python识别二维码的问题

    千次阅读 2017-09-07 09:16:07
    识别二维码需要用到zbar库,在win10上安装非官方的集成包没有问题,能import到zbar库 但是由于我们服务器是windows server 2003 64bit 那么问题就来了,环境、环境、头疼的环境,安装zbar python库的时候遇到各种坑...
  • 导读:计算机视觉专家Adrian Rosebrock近日分享了如何借助OpenCV和Zbar,编写出能够实时识别二维码和条形码的扫描程序,最后部署在树莓派上,成功制作一款实用的条形码&二维码扫描设备。 最近有朋友问我...
  • 树莓派CSI摄像头python识别二维码

    千次阅读 2019-03-31 15:30:21
    1. 打开终端,更新树莓派,将软件源更新一遍 sudo apt-get update ... 更新系统,将已安装的...结果,正确识别。     参考: https://blog.csdn.net/x115104/article/details/78878599   
  • 因为在写爬虫,遇到网站做了二维码的限制,网上试了一些现有的代码,识别成功率很低。所以开始找打码平台 云打码 先试过的云打码api,成功率百分之八十吧,会有超时的情况。记得是每次0.005元。充过一百多块钱,在...
  • 二维码和条形码在我们的日常生活中的使用场景越来越多,使得其识别成为CV技术中的热门方向,下面介绍如何是使用 pyzbar 快速识别二维码和条形码,让您的业务快速成型。 我是 HinGwenWoong,一个有着清晰目标不停...
  • 怎么办?怎么办?别急 魔高一尺,道高一丈!!!! 首先  先把这个软件都安装好  ...*.dll 搜索到的文件全部放到 python 安装路径中 (这里不行 就放到sit-packge中)最好 用 import zbar 试试 不报错就ok啦
  • python 摄像头二维码识别
  • Python生成+识别二维码

    万次阅读 多人点赞 2018-05-15 12:49:43
    二维码(QR Code),使用平面图案存储信息,根据白0黑1的算机内部逻辑,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过...Python识别二维码信息 1.下载二维码生成识别库 2.cmd输入pip路径,输入i...
  • 树莓派python实现二维码识别——ZBar

    千次阅读 2019-05-15 21:56:26
    硬件由树莓派3Bplus和usb摄像头组成,软件由python二维码识别开源工具zbar和opencv组成。通过本文,可以学习如何正确快速安装zbar及快速上手zbar二维码识别,同时可采用opencv对二维码快速定位,实现二维码的快速...
  • 此代码是基于二维码识别python代码,将视频中的二维码识别的数据进行解析,并在屏幕上面打印出来,并解析成为坐标的形式,最后由于要控制步进电机进行相应的操作,因此在解析挖成之后并把坐标转换成为数控编码的...
  • 利用Opencv+Python 实现二维码识别

    千次阅读 2020-04-20 13:29:23
    准备工作: 二维码图片,我这里直接打印在了一张A4纸上,或者直接在草料网站上生成 草料二维码生成器,存放在手机上进行显示。在安装条码扫描库的时候大家注意:zbar库...利用摄像头识别二维码中的内容并打印出来,...
  • 最近项目中用到二维码图片识别,在python二维码识别,目前主要有三个模块:zbar 、zbarlight、zxing。 1、三个模块的用法: #-*-coding=utf-8-*- import os import logging import zbar from PIL import...
  • from pyzbar.pyzbar import ...代码如下:即可获得识别二维码对应的网址 from pyzbar.pyzbar import decode from PIL import Image image = 'timg.jpg' img = Image.open(image) barcodes = decode(img) for bar...
  • Python3 自动生成二维码 首先 安装两个包 pip install pypng pip install pyqrcode 生成二维码图片: 是不是… 但是如何读取二维码的内容呢? 直接上代码 Python from PIL import ...
  • 今天突然想给自己自己做个头像,然后还是二维码的形式,这样只要扫一扫就可以访问我的主页。然后就开始自己的苦逼之路。。。  其实实现二维码java,c#,...看起来就是用二维码生成和识别的两个库QRcode和Zar,用这...
  • Python处理二维码

    2019-09-20 22:18:02
    1.Python实现将文本生成二维码示例代码 ...2.教你用Python实现实时二维码识别 https://www.jianshu.com/p/1502f52275df 3.python实现文字加解密常用方法 https://www.jianshu.com/p/094f258ecdba 4....
  • python zxing识别二维码、条形码

    千次阅读 2018-12-22 23:29:09
    项目地址:https://github.com/oostendo/python-zxing ...1、下载3个依赖包,放在python-zxing中。 相关命令: git clone https://github.com/oostendo/python-zxing.git cd python-zxing wget ...
  • 基于ZBar,OpenCV和Python二维码识别

    千次阅读 2019-04-25 21:40:39
    0 前言 今天分享一个之前做过的二维码识别,参考:https://www.pyimagesearch.com/2018/05/21/an-opencv-barcode-and-qr-code-scanner-with-zbar/ 上面那个只有Python版本,再推荐一个C++版本的: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,526
精华内容 1,010
关键字:

python识别二维码

python 订阅