python实现批量提取图片中文字的小工具

要实现批量提取图片中的文字,我们可以使用Python的pytesseract和Pillow库。pytesseract是一个OCR(Optical Character Recognition,光学字符识别)引擎,可以将图片中的文字转换为文本字符串。Pillow是一个Python Imaging Library(PIL),可以用来打开、处理和保存图像文件。

下面是一个使用这些库实现的简单脚本示例:

import os
from PIL import Image
import pytesseract

Set up paths and options

input_folder = "input"
output_folder = "output"
lang = "eng"  # Language of the text in the images

Create output folder if it does not exist

if not os.path.exists(output_folder):
    os.makedirs(output_folder)

Loop through all images in the input folder

for filename in os.listdir(input_folder):
    # Check if file is an image
    if filename.endswith((".png", ".jpg", ".jpeg", ".gif")):
        # Open the image with Pillow
        image_path = os.path.join(input_folder, filename)
        image = Image.open(image_path)

        # Convert image to grayscale (to improve OCR accuracy)
        gray_image = image.convert("L")

        # Use pytesseract to extract the text from the image
        text = pytesseract.image_to_string(gray_image, lang=lang)

        # Save the extracted text to a file in the output folder
        text_filename = os.path.splitext(filename)[0] + ".txt"
        text_path = os.path.join(output_folder, text_filename)
        with open(text_path, "w") as text_file:
            text_file.write(text)
            
        # Print progress message
        print(f"Extracted text from {filename} and saved to {text_filename}.")

在这个程序中,我们首先设置了输入文件夹、输出文件夹和语言选项。然后,我们检查输入文件夹中的每个文件,只对图像文件进行处理。对于每个图像文件,我们使用Pillow库打开它,并将其转换为灰度图像以提高OCR准确性。接下来,我们使用pytesseract库提取图像中的文本,并将其保存到与原始图像同名的文本文件中。最后,我们打印出进度消息,指示我们已经从哪张图片中提取了文本并将其保存到哪个文本文件中。

当脚本执行完毕后,生成的文本文件将放置在“output”文件夹中,并与相应的输入图像文件具有相同的名称(但扩展名不同)。

你可能感兴趣的:(小工具开发,python,计算机视觉,opencv)