Python批量识别图片中的文字并保存到txt文档中

作者:4042024.01.08 11:50浏览量:10

简介:本文将介绍如何使用Python和OCR(光学字符识别)库来批量识别图片中的文字,并将结果保存到txt文档中。我们将使用Tesseract OCR引擎和Python的pytesseract库来实现这一目标。

在开始之前,请确保已经安装了Tesseract OCR引擎和pytesseract库。如果没有安装,请先安装它们。安装命令如下:

  1. # 安装Tesseract OCR引擎
  2. sudo apt-get install tesseract-ocr
  3. # 安装pytesseract库
  4. pip install pytesseract

接下来,我们将编写一个Python脚本,该脚本将批量识别图片中的文字,并将结果保存到txt文档中。

  1. import os
  2. import pytesseract
  3. from PIL import Image
  4. # 设置Tesseract OCR引擎的路径
  5. pytesseract.pytesseract.tesseract_cmd = r'/usr/bin/tesseract' # 根据你的系统路径进行修改
  6. # 定义保存结果的txt文件路径
  7. output_file = 'output.txt'
  8. # 定义图片所在的文件夹路径
  9. image_folder = 'images'
  10. # 遍历文件夹中的所有图片文件
  11. for filename in os.listdir(image_folder):
  12. if filename.endswith('.jpg') or filename.endswith('.png'): # 只处理jpg和png格式的图片文件
  13. image_path = os.path.join(image_folder, filename)
  14. text = pytesseract.image_to_string(Image.open(image_path)) # 使用pytesseract识别图片中的文字
  15. with open(output_file, 'a') as f: # 打开或创建输出txt文件,以追加模式写入结果
  16. f.write(text + '
  17. ') # 将每张图片的文字结果写入txt文件,每个结果占一行

运行脚本后,它将遍历指定文件夹中的所有图片文件,并使用Tesseract OCR引擎识别其中的文字。识别结果将保存到名为“output.txt”的txt文件中。如果输出文件不存在,脚本将自动创建它。每张图片的文字结果将占据一行。
请注意,OCR技术的准确度取决于许多因素,包括图片质量、字体、字号、背景等。因此,在某些情况下,可能无法完全准确地识别出图片中的文字。如果需要更高的识别准确度,可以尝试使用更先进的OCR技术或对图片进行预处理(如降噪、二值化、去背景等)。