在这个数字化时代,文本识别技术变得越来越重要,它广泛应用于文档自动化处理、内容审核、智能交互等场景。本文将引导你如何使用Python结合PaddleOCR库,轻松实现图片中的文字识别功能。
在开始编写代码之前,你需要安装以下几个Python库:
你可以通过以下命令安装这些库:
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的图形界面应用,主要包括以下几个部分:
初始化OCR引擎:在OcrQt类的构造函数中,通过PaddleOCR初始化OCR引擎,可以设置是否使用角度分类器、是否使用GPU加速、语言等参数。
设置识别任务:通过set_task方法设置图片路径、是否使用角度分类器、是否进行文字区域检测等。
启动识别:start方法中调用ocr方法对指定图片进行文字识别,并通过grouping方法对识别结果进行简单处理。
识别与结果处理:ocr方法中使用PaddleOCR对象进行OCR识别,grouping方法则负责输出识别结果。
path变量为你需要识别的图片路径。

为了方便大家的使用和修改,我已经将项目代码上传至Gitee,你可以通过以下链接进行访问和下载:
通过本文,你已经学会了如何使用Python和PaddleOCR库来识别图片中的文字。这只是PaddleOCR强大功能的冰山一角,它还支持多种语言,可以适应不同的识别场景。希望本文能够帮助你在项目中快速实现文字识别功能。