如何使用Python和PaddleOCR轻松识别图片中的文字

在这个数字化时代,文本识别技术变得越来越重要,它广泛应用于文档自动化处理、内容审核、智能交互等场景。本文将引导你如何使用Python结合PaddleOCR库,轻松实现图片中的文字识别功能。

必备工具包安装

在开始编写代码之前,你需要安装以下几个Python库:

  • PyQt5:用于构建图形用户界面
  • PaddleOCR:百度开发的文字识别库,支持多语言和多场景的文字检测与识别
  • colorama:用于在终端输出彩色文本

你可以通过以下命令安装这些库:

pip install PyQt5 paddleocr colorama

确保你的环境中已经安装了这些包,否则程序将无法正常运行。

代码与逻辑简介

#!/usr/bin/env python3
# coding:utf-8
from PyQt5.QtCore import QObject
from paddleocr import PaddleOCR
import logging
from colorama import Fore, Style

# 设置 PaddleOCR 日志级别为 ERROR
logging.getLogger("ppocr").setLevel(logging.ERROR)


class OcrQt(QObject):
    def __init__(self, parent=None):
        super(OcrQt, self).__init__(parent)
        self.img_path = "./0001.png"
        self.use_angle = True
        self.cls = True
        self.default_lan = "ch"
        self.result = []
        self.ls = []
        self.dic = {}

    def set_task(self, img_path='', use_angle=True, cls=True, lan="ch"):
        self.img_path = img_path
        self.use_angle = use_angle
        self.cls = cls
        self.default_lan = lan

    def start(self):
        self.ocr(self.img_path, self.use_angle, self.cls, self.default_lan)
        self.grouping()

    def ocr(self, img_path, use_angle=True, cls=True, lan="ch", use_gpu=0):
        ocr = PaddleOCR(use_angle_cls=use_angle, use_gpu=use_gpu, lang=lan)
        try:
            result = ocr.ocr(img_path, cls=cls)
            self.result = result
        except PermissionError:
            print(Fore.RED + '权限错误:' + Style.RESET_ALL)
            exit()
        except FileNotFoundError:
            print(Fore.RED + '图片路径错误:' + Style.RESET_ALL, self.img_path)
            exit()
        for line in self.result:
            ls = [j[0] for i in line for j in i]
            dic = {}
            self.ls = ls
            self.dic = dic
            for index, info in enumerate(ls):
                if index % 2 == 0:
                    dic[tuple(info)] = ls[index + 1]

    def grouping(self):
        print('\n'.join([info for index, info in enumerate(self.ls) if index % 2 == 1]))


if __name__ == "__main__":
    path = r''  # 这里换成需要图区文本的图片链接即可,如不修改则使用默认图片
    ocrObj = OcrQt()
    if path:
        print('=' * 30, '提取用户上传图片文本', '=' * 30)
        ocrObj.set_task(path)
    else:
        print('=' * 30, '使用默认测试图片', '=' * 30)
    ocrObj.start()

该程序是一个基于PyQt5和PaddleOCR的图形界面应用,主要包括以下几个部分:

  1. 初始化OCR引擎:OcrQt类的构造函数中,通过PaddleOCR初始化OCR引擎,可以设置是否使用角度分类器、是否使用GPU加速、语言等参数。

  2. 设置识别任务:通过set_task方法设置图片路径、是否使用角度分类器、是否进行文字区域检测等。

  3. 启动识别:start方法中调用ocr方法对指定图片进行文字识别,并通过grouping方法对识别结果进行简单处理。

  4. 识别与结果处理:ocr方法中使用PaddleOCR对象进行OCR识别,grouping方法则负责输出识别结果。

如何使用

  1. 确保你已经安装了所有必要的库。
  2. 将上述代码保存为Python文件(例如ExtractText.py)。
  3. 修改path变量为你需要识别的图片路径。
  4. 运行程序,程序将输出图片中识别到的文字。

运行截图

Gitee仓库下载地址

为了方便大家的使用和修改,我已经将项目代码上传至Gitee,你可以通过以下链接进行访问和下载:

python实用脚本: 欢迎访问“Python实用脚本”仓库!本仓库汇集了各种实用的Python脚本,旨在帮助开发者提高开发效率,解决日常编程问题。脚本涵盖了数据处理、图像识别、自动化任务等多个领域,每个脚本都附有详细的使用说明和示例代码。无论你是初学者还是经验丰富的开发者,这里都能找到适合你的工具和解决方案。欢迎下载、试用并提出宝贵意见!icon-default.png?t=N7T8https://gitee.com/fantasy_5/python-practical-script

结语

通过本文,你已经学会了如何使用Python和PaddleOCR库来识别图片中的文字。这只是PaddleOCR强大功能的冰山一角,它还支持多种语言,可以适应不同的识别场景。希望本文能够帮助你在项目中快速实现文字识别功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/739887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vantUI upload 上传组件v-model绑定问题

直接绑定一个数组会有问题,删除失效/上传不了等等 解决在v-model绑定的数组外包一个对象即可

跨境电商货源渠道哪里找?盘点11个拿货产业带

一、跨境货源渠道哪里找? 说到找货源,应该很多卖家都上过阿里巴巴1688“淘货”,阿里巴巴1688作为一个全球采购批发平台,在2017年上线了个跨境专供板块,专为跨境卖家供货,跨境专供板块的供货商需要经过严格…

【每日刷题】Day74

【每日刷题】Day74 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1394. 找出数组中的幸运数 - 力扣(LeetCode) 2. 1518. 换水问题 - 力扣&…

有什么能和ai聊天的软件?5个软件教你快速和ai进行聊天

有什么能和ai聊天的软件?5个软件教你快速和ai进行聊天 当今数字化时代,人工智能(AI)技术已经逐渐渗透到我们的日常生活中,而与AI进行聊天也成为了一种趋势和乐趣。以下是五款可以和AI进行聊天的软件,它们提…

【PA交易】BackTrader(一): 如何使用实时tick数据和蜡烛图

背景和需求 整合Tick数据是PA交易的回测与实盘基本需求。多数交易回测框架往往缺乏对大规模Tick数据直接而全面的支持。Tick数据因其体量庞大(例如,某棕榈油主力合约四年间的数据达8GB)为结合价格趋势与PA分析带来挑战,凸显了实时…

C语言基础——函数(2)

ʕ • ᴥ • ʔ づ♡ど 🎉 欢迎点赞支持🎉 文章目录 前言 一、return语句 二、数组做函数参数 三、嵌套调用和链式访问 3.1 嵌套调用 3.2 链式访问 四、函数声明和定义 4.1 单个文件 4.2 多个文件 总结 前言 大家好啊,继我们上一…

深入测评:ONLYOFFICE 8.1 桌面编辑器究竟有多强大?

ONLYOFFICE 8.1桌面编辑器 文章目录 ONLYOFFICE 8.1桌面编辑器一、ONLYOFFICE的简介二、ONLYOFFICE 8.1新功能和改进2.1 轻松编辑器 PDF 文件2.2 用幻灯片版式快速修改幻灯片2.3 无缝切换文档编辑、审阅和查看模式2.4 改进从右至左语言的支持 & 新的本地化选项2.5 隐藏“连…

【AI大模型】GPTS 与 Assistants API

前言 2023 年 11 月 6 日,OpenAI DevDay 发表了一系列新能力,其中包括:GPT Store 和 Assistants API。 GPTs 和 Assistants API 本质是降低开发门槛 可操控性和易用性之间的权衡与折中: 更多技术路线选择:原生 API、…

洗地机选购指南,什么品牌最值得购买?2024四大口碑品牌推荐

随着炎炎夏日的到来,家里的地板清洁会成为人们“沉重”的负担,而拥有一台能够高效又轻松完成地板深度清洁的洗地机是一件非常幸福的事儿。但是,面对市场上琳琅满目的洗地机品牌和型号,如何找到一款综合性能都不错的洗地机成为了许…

mac怎么压缩pdf文件,苹果电脑怎么压缩pdf文件大小

在当今数字化时代,PDF文件已成为广泛使用的文档格式之一。然而,PDF 文件可能会因其包含的图像、图形和其他元素而导致文件较大,这可能会影响文件的传输、存储和共享。因此,对 PDF 文件进行压缩以减小其文件大小是很有必要的。今天…

【pytorch04】创建Tensor

numpy中的数据创建tensor 数据已经在numpy中了,将numpy中的数据转到tensor中来,因为我们将使用tensor在GPU上进行加速运算 从NUMPY导入的FLOAT其实是DOUBLE类型 list中的数据创建tensor FloatTensor()和大写的Tensor()接收的是shape(即数据的…

解析JavaScript中逻辑运算符和||的返回值机制

本文主要内容:了解逻辑运算符 &&(逻辑与)和 ||(逻辑或)的返回值。 在JavaScript中,逻辑运算符 &&(逻辑与)和 ||(逻辑或)的返回值可能并不总…

区块链学习03-空投篇

Hybrid 是与 以太坊 兼容的第 2 层区块链,集成了混合专家 (MoE) 框架,支持以即插即用的方式轻松创建和货币化 AI 代理。该平台旨在提高区块链应用程序中数据的完整性和可用性,支持跨各个行业开发和部署 AI 驱动的解决方案。 Hybrid 正在为其…

php上传zip压缩包到服务器并解压,解析压缩包内excel表格数据导入到数据库

需求: 1.需要管理后台将excel表格中的每条单词数据导入到数据库中. 2.每条单词数据对应的图片和音频文件需要上传到服务器中. 为了让客户上传数据方便,考虑了一下决定通过后台上传压缩包的方式实现 测试压缩包: 压缩包的目录结构 管理后台导入教材 public function upload…

kylin v10 离线安装chrome centos离线安装chrome linux离线安装谷歌浏览器

1. 先用自己联网的计算机,下载离线安装包,浏览器输入链接下载安装包: https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 1.2. 信创环境不用执行下面,因为没网 1.3. 若为阿里云服务器,或服…

【速速收藏】适用于Linux系统的五个优秀PDF编辑器

PDF (Portable Document Format) 是便携文档格式的缩写,这是一种用于电子共享文档的标准格式,广泛应用于各种文档类型的存储和分发。然而,有时我们可能需要对PDF文档进行更改和编辑。本文将介绍五款在Linux平台上广受欢迎的PDF编辑器。 ​​…

七种不同类型测宽仪技术参数 看看哪种能用于您的产线?

在线测宽仪种类众多,原理不同,产品不同,型号不同,其技术参数也各不相同。不同的测量范围与测量精度,适用于不同规格的板材,看看您的板材能适用于哪种范围。 1、单测头平行光测宽仪 点光源发射的光经过发射…

期末成绩怎么快速发给家长

Hey各位老师们,今天来聊一个超级实用的话题:如何快速高效的向家长们传达学生的期末成绩。你可能会想,这不是很简单吗?直接班级群发个消息不就得了?但别忘了,保护学生隐私和自尊心也是很重要的哦&#xff01…

【方案】基于5G智慧工业园区解决方案(PPT原件)

5G智慧工业园区整体解决方案旨在通过集成5G通信技术、物联网、大数据和云计算等先进技术,实现园区的智能化、高效化和绿色化。 该方案首先构建高速、稳定的5G网络,确保园区内设备、人员与物流的实时连接和高效沟通。其次,通过工业物联网技术&…

RFID技术在人工晶体清洗台上的应用案例分析

RFID技术在人工晶体清洗台上的应用案例分析 应用背景 在医疗领域中人工晶体清洗台发挥着极为重要的作用,随着市场需求的持续增长、技术的不断创新、定制化趋势的加强以及环保要求的提高,人工晶体清洗台不免暴露出一下应用痛点需要解决。 痛点&#xff…