教你用python实现自动化文本识别

目录

步骤1:安装依赖

安装Tesseract

安装pytesseract和Pillow(用于图像处理)

扩展功能


 

实现自动化文本识别(Optical Character Recognition, OCR)通常使用Python的OCR库,例如Tesseract。Tesseract是一个开源的OCR引擎,可以识别多种语言的文本。在Python中,可以使用pytesseract库来调用Tesseract。

以下是一个简单的示例,展示如何使用Python和Tesseract实现自动化文本识别:

步骤1:安装依赖

首先,你需要安装Tesseract OCR引擎和pytesseract库。

安装Tesseract
  • 对于Windows用户,可以从Tesseract的GitHub发布页面下载并安装。
  • 对于macOS用户,可以使用Homebrew安装:
    brew install tesseract

  • 对于Linux用户,可以使用包管理器安装,例如:
    sudo apt-get install tesseract-ocr

安装pytesseract和Pillow(用于图像处理)

使用pip安装这些Python库:

pip install pytesseract Pillow

步骤2:编写Python代码

以下是一个简单的Python脚本,用于从图像中提取文本:

from PIL import Image  
import pytesseract  
  
# 如果Tesseract没有安装在默认路径,你需要指定tesseract_cmd  
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # Windows示例  
# pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'  # macOS示例  
# pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'  # Linux示例  
  
# 打开图像文件  
image_path = 'path_to_your_image.png'  # 替换为你的图像路径  
image = Image.open(image_path)  
  
# 使用Tesseract进行OCR  
text = pytesseract.image_to_string(image, lang='chi_sim')  # 'chi_sim'表示简体中文,可以根据需要更改语言  
  
# 打印识别出的文本  
print(text)


注意事项

  1. 图像质量:OCR的准确性很大程度上取决于图像的质量。确保图像清晰、分辨率高,并且没有噪声或扭曲。
  2. 语言设置:Tesseract支持多种语言。你需要确保安装了所需的语言包,并在代码中指定正确的语言代码。
  3. Tesseract路径:如果在非默认路径下安装了Tesseract,需要在代码中指定Tesseract的路径。

扩展功能

  • 预处理图像:在进行OCR之前,可以使用图像处理技术(如灰度化、二值化等)来增强图像质量。
  • 处理PDF文件:可以使用PyMuPDF(又名fitz)等库来从PDF文件中提取图像并进行OCR。

以下是一个使用PyMuPDF从PDF中提取图像并进行OCR的示例:

import fitz  # PyMuPDF  
import pytesseract  
  
# 打开PDF文件  
pdf_path = 'path_to_your_pdf.pdf'  # 替换为你的PDF路径  
pdf_document = fitz.open(pdf_path)  
  
# 遍历PDF中的每一页  
for page_num in range(len(pdf_document)):  
    page = pdf_document.load_page(page_num)  
    images = page.get_images(full=True)  
      
    for img_index, img in enumerate(images):  
        xref = img[0]  
        base_image = pdf_document.extract_image(xref)  
        image_bytes = base_image["image"]  
          
        # 使用Pillow打开图像  
        image = Image.open(io.BytesIO(image_bytes))  
          
        # 使用Tesseract进行OCR  
        text = pytesseract.image_to_string(image, lang='chi_sim')  
          
        # 打印识别出的文本  
        print(f"Page {page_num + 1}, Image {img_index + 1}:")  
        print(text)


这个示例中,我们使用了PyMuPDF从PDF中提取图像,然后使用Pillow打开图像,最后使用pytesseract进行OCR。注意,你需要先安装PyMuPDF库:

pip install PyMuPDF

 全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

在这里插入图片描述

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

在这里插入图片描述

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。
————————————————

上一篇:【工具变量】中国制造2025试点城市数据集(2000-2023年)


下一篇:终于把Python中数值计算的“常用内置函数”弄懂了