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


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

    必备工具包安装

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

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

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

    pip install PyQt5 paddleocr colorama

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

    代码与逻辑简介

    1. #!/usr/bin/env python3
    2. # coding:utf-8
    3. from PyQt5.QtCore import QObject
    4. from paddleocr import PaddleOCR
    5. import logging
    6. from colorama import Fore, Style
    7. # 设置 PaddleOCR 日志级别为 ERROR
    8. logging.getLogger("ppocr").setLevel(logging.ERROR)
    9. class OcrQt(QObject):
    10. def __init__(self, parent=None):
    11. super(OcrQt, self).__init__(parent)
    12. self.img_path = "./0001.png"
    13. self.use_angle = True
    14. self.cls = True
    15. self.default_lan = "ch"
    16. self.result = []
    17. self.ls = []
    18. self.dic = {}
    19. def set_task(self, img_path='', use_angle=True, cls=True, lan="ch"):
    20. self.img_path = img_path
    21. self.use_angle = use_angle
    22. self.cls = cls
    23. self.default_lan = lan
    24. def start(self):
    25. self.ocr(self.img_path, self.use_angle, self.cls, self.default_lan)
    26. self.grouping()
    27. def ocr(self, img_path, use_angle=True, cls=True, lan="ch", use_gpu=0):
    28. ocr = PaddleOCR(use_angle_cls=use_angle, use_gpu=use_gpu, lang=lan)
    29. try:
    30. result = ocr.ocr(img_path, cls=cls)
    31. self.result = result
    32. except PermissionError:
    33. print(Fore.RED + '权限错误:' + Style.RESET_ALL)
    34. exit()
    35. except FileNotFoundError:
    36. print(Fore.RED + '图片路径错误:' + Style.RESET_ALL, self.img_path)
    37. exit()
    38. for line in self.result:
    39. ls = [j[0] for i in line for j in i]
    40. dic = {}
    41. self.ls = ls
    42. self.dic = dic
    43. for index, info in enumerate(ls):
    44. if index % 2 == 0:
    45. dic[tuple(info)] = ls[index + 1]
    46. def grouping(self):
    47. print('\n'.join([info for index, info in enumerate(self.ls) if index % 2 == 1]))
    48. if __name__ == "__main__":
    49. path = r'' # 这里换成需要识别的图片地址即可,如不修改则使用默认图片
    50. ocrObj = OcrQt()
    51. if path:
    52. print('=' * 30, '提取用户上传图片文本', '=' * 30)
    53. ocrObj.set_task(path)
    54. else:
    55. print('=' * 30, '使用默认测试图片', '=' * 30)
    56. 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强大功能的冰山一角,它还支持多种语言,可以适应不同的识别场景。希望本文能够帮助你在项目中快速实现文字识别功能。

  • 相关阅读:
    VLDB'22 HiEngine极致RTO论文解读
    开发ABAP程序中的错误
    docker部署zabbix使用postgresql数据库
    七夕了,男朋友说他想学学算法~
    Spring(二)
    CLI、CLR、CTS、CLS
    LQ0208 梅森素数【大数】
    【大学英语视听说上】绕口令练习
    linux之chmod命令
    基于thinkphp5利用QQ邮箱发送邮件的实现
  • 原文地址:https://blog.csdn.net/FLK_9090/article/details/139930665