在Python/ target=_blank class=infotextkey>Python中,可以使用多种库和工具来识别图片中的文本 。其中,比较常用的是Tesseract OCR和Pytesseract库 。下面将介绍如何使用Python和Pytesseract库来识别图片中的文本,并将其整理成word、txt和markdown格式的文件 。
1. 安装和配置Pytesseract库Pytesseract是Python的一个OCR库,它是Tesseract OCR引擎的Python封装 。在使用Pytesseract之前,需要先安装Tesseract OCR引擎和Pytesseract库 。可以使用以下命令在linux系统中安装Tesseract OCR和Pytesseract库:
sudo apt-get install tesseract-ocrsudo apt-get install libtesseract-devpip install pytesseract
在windows系统中,可以从Tesseract OCR的官方网站(
https://Github.com/UB-Mannheim/tesseract/wiki)下载安装包,然后使用以下命令安装Pytesseract库:
pip install pytesseract
2. 识别图片中的文本使用Pytesseract库识别图片中的文本非常简单 。首先,需要导入pytesseract模块和PIL模块(用于打开和处理图片) 。然后,可以使用
pytesseract.image_to_string()函数来识别图片中的文本 。以下是一个简单的示例:
import pytesseractfrom PIL import Image# 打开图片img = Image.open('example.png')# 识别图片中的文本text = pytesseract.image_to_string(img, lang='eng')# 打印识别的文本print(text)
在上面的示例中,
pytesseract.image_to_string()函数接受两个参数:要识别的图片和语言选项 。默认情况下,Pytesseract使用英语语言模型进行识别 。如果需要识别其他语言,可以将lang参数设置为对应的语言代码 。
3. 整理识别的文本在将识别的文本整理成word、txt和markdown格式的文件之前,需要先对识别的文本进行处理和清洗,以确保输出的文件格式正确 。以下是一些常用的文本处理和清洗操作:
- 去除多余的空格和换行符
- 将文本按照段落进行分割
- 将文本按照句子进行分割
- 删除无用的字符和标点符号
- 将文本转换为小写字母(可选)
- ...
import pytesseractfrom PIL import Image# 打开图片img = Image.open('example.png')# 识别图片中的文本text = pytesseract.image_to_string(img, lang='eng')# 去除多余的空格和换行符text = ' '.join(text.split())text = text.replace('n', ' ')# 将文本按照段落进行分割paragraphs = text.split('nn')# 创建txt文件并写入文本with open('example.txt', 'w') as f:for p in paragraphs:f.write(p + 'nn')
将识别的文本整理成word、markdown格式的文件也类似,只需要将输出格式从txt改为对应的格式,然后使用相应的库或工具来生成文件即可 。4. 完整代码下面是一个完整的示例代码,将识别的文本整理成word、txt格式的文件:
import pytesseractfrom PIL import Imageimport docximport os# 打开图片img = Image.open('example.png')# 识别图片中的文本text = pytesseract.image_to_string(img, lang='eng')# 去除多余的空格和换行符text = ' '.join(text.split())text = text.replace('n', ' ')# 将文本按照段落进行分割paragraphs = text.split('nn')# 将文本整理成word格式的文件doc = docx.Document()for p in paragraphs:doc.add_paragraph(p)doc.save('example.docx')# 将文本整理成txt格式的文件with open('example.txt', 'w') as f:for p in paragraphs:f.write(p + 'nn')# 打开生成的文件os.system('start example.docx')os.system('start example.txt')
在上面的代码中,使用了Python的docx库来生成word格式的文件 。在生成文件之后,使用os模块打开文件 。在Windows系统中,可以使用os.system()函数来打开文件 。在其他操作系统中,可能需要使用其他方式来打开文件 。【如何使用Python中的OCR技术将图像中的文本提取为可编辑文件?】
推荐阅读
- 如何为 APT 命令设置代理
- 你知道如何创建Linux用户和群组吗?
- 全面了解Python PyQt6中应用程序类和窗口类之间的关系
- Node Docker 官方镜像使用方法
- 如何制作动态图GIF?帮你轻松制作
- DeepFakes深度造假,如何识破“AI换脸术”?
- 如何在 Linux 中使用 split 命令拆分文本文件
- 笑果文化|笑果文化如何一步步自食恶果走向深渊
- |如何在职场中提高自己的职业竞争力?
- 岳云鹏|岳云鹏获赠别墅永久使用权,这还是《极限挑战》吗