Извлечение текста из изображений: подробное руководство с примерами кода

В современную цифровую эпоху извлечение текста из изображений стало ценным инструментом для различных приложений, таких как оцифровка документов, интеллектуальный анализ данных и автоматическое распознавание текста. Цель этой статьи в блоге — предоставить вам подробное руководство по различным методам извлечения текста из изображений, а также примеры кода на Python. Давайте погрузимся!

Метод 1: использование Tesseract OCR с Pytesseract
Tesseract — это широко используемый механизм OCR с открытым исходным кодом, поддерживающий несколько языков. Pytesseract — это оболочка Python для использования функций Tesseract.

import pytesseract
from PIL import Image
# Load the image
image = Image.open('image.jpg')
# Convert the image to text using Pytesseract
text = pytesseract.image_to_string(image)
print(text)

Метод 2. Использование Google Cloud Vision API
Google Cloud Vision API представляет собой мощное облачное решение для оптического распознавания символов с расширенными функциями, такими как распознавание рукописного ввода и обнаружение текста.

from google.cloud import vision
from google.cloud.vision_v1 import types
def extract_text_from_image(image_path):
    client = vision.ImageAnnotatorClient()
    # Read the image file
    with open(image_path, 'rb') as image_file:
        content = image_file.read()
    # Create an image object
    image = vision.Image(content=content)
    # Perform OCR
    response = client.text_detection(image=image)
    texts = response.text_annotations
    extracted_text = ''
    for text in texts:
        extracted_text += text.description
    return extracted_text
# Provide the path to the image
image_path = 'image.jpg'
# Extract text using Google Cloud Vision API
extracted_text = extract_text_from_image(image_path)
print(extracted_text)

Метод 3. Использование OpenCV и Pytesseract
OpenCV – популярная библиотека компьютерного зрения, которую можно объединить с Pytesseract для извлечения текста из изображений.

import cv2
import pytesseract
def extract_text_from_image(image_path):
    # Load the image using OpenCV
    image = cv2.imread(image_path)
    # Convert the image to grayscale
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # Apply image preprocessing (if required)
    # ...
    # Perform OCR using Pytesseract
    text = pytesseract.image_to_string(gray)
    return text
# Provide the path to the image
image_path = 'image.jpg'
# Extract text using OpenCV and Pytesseract
extracted_text = extract_text_from_image(image_path)
print(extracted_text)

Метод 4: методы предварительной обработки с помощью OpenCV
Предварительная обработка изображения перед выполнением оптического распознавания символов может повысить точность извлечения текста. Вот пример использования порогового значения и удаления шума:

import cv2
import pytesseract
def extract_text_from_image(image_path):
    # Load the image using OpenCV
    image = cv2.imread(image_path)
    # Convert the image to grayscale
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # Apply thresholding
    _, thresholded = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    # Remove noise using median blur
    denoised = cv2.medianBlur(thresholded, 3)
    # Perform OCR using Pytesseract
    text = pytesseract.image_to_string(denoised)
    return text
# Provide the path to the image
image_path = 'image.jpg'
# Extract text using OpenCV and Pytesseract with preprocessing
extracted_text = extract_text_from_image(image_path)
print(extracted_text)

В этой статье мы рассмотрели несколько методов извлечения текста из изображений с помощью Python. Мы рассмотрели Tesseract OCR с Pytesseract, Google Cloud Vision API, OpenCV с Pytesseract и методы предварительной обработки изображений. В зависимости от ваших конкретных требований и сложности изображений вы можете выбрать наиболее подходящий метод для вашего проекта. Поэкспериментируйте с этими методами и раскройте потенциал легкого извлечения ценной информации из изображений.

Удачного извлечения текста!