Поиск изображений в папке с текстом на изображении

Вопрос или проблема

Нужен ли для этого приложение/программное обеспечение?
Текст на изображении означает, что текст написан на изображении и необходимо выполнить поиск с использованием этого “текстового” запроса, чтобы найти изображение в папке.

Я видел вариант поиска для pdf и других файлов, но не для изображений.

Суперпользователь не является службой написания сценариев… и не подходит для рекомендаций по программному обеспечению…

Tesseract – и OCR в целом (даже, например, в Adobe Acrobat Pro) далеки от совершенства;
вы можете захотеть использовать, например, простой python-скрипт для

  1. проверки, была ли проведена OCR (сравнение дат файлов), перейти к 3, если “да”
  2. проведения OCR, используя, например, pytesseract в файл *.txt рядом (в паре) с изображением, затем
  3. поиска соответствующего текста в этом файле
    (что может потребовать, например, нечёткой логики из-за не слишком идеального OCR)

Ответ или решение

Поиск изображений по тексту на изображении

Если вы хотите найти изображения в папке на основе текста, написанного на этих изображениях, то вам понадобится программа или приложение, которое использует технологию распознавания текста — оптическое распознавание символов (OCR).

Что такое OCR?

OCR (оптическое распознавание символов) — это технология, позволяющая извлекать текст из изображений. Это может быть особенно полезно для документов, фотографий или любых других визуальных медиа, где текст является важным содержимым.

Как организовать поиск изображений с текстом

Прежде чем приступить к поиску, необходимо выполнить несколько шагов:

  1. Выбор инструмента для OCR:
    Наиболее популярным инструментом является Tesseract. Это бесплатная библиотека OCR для Python, которая поддерживает множество языков. Хотя Tesseract не идеален, он может быть весьма эффективным для большинства простых задач.

  2. Создание скрипта на Python:
    Вам понадобится небольшой скрипт, который будет:

    • Проверять, выполнено ли распознавание текста ранее (например, проверяйте дату изменения файла).
    • Если текст еще не распознан, выполняйте OCR с помощью Tesseract и сохраняйте его результаты в текстовом файле, сопоставленном с изображением.
    • Затем ищите нужный текст в созданных текстовых файлах.

Пример Скрипта на Python

import pytesseract
from PIL import Image
import os

def process_image(image_path):
    # Путь к текстовому файлу
    txt_file_path = f"{image_path}.txt"

    # Проверка, существует ли уже текстовый файл
    if os.path.exists(txt_file_path):
        return  # Пропускаем, если текст уже обработан

    # Открывааем изображение
    image = Image.open(image_path)

    # Выполняем OCR
    text = pytesseract.image_to_string(image)

    # Сохраняем текст в файл
    with open(txt_file_path, 'w', encoding='utf-8') as f:
        f.write(text)

def search_in_folder(folder_path, search_text):
    # Проходимся по всем файлам в папке
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            image_path = os.path.join(folder_path, filename)
            process_image(image_path)

            # Проверяем наличие текста
            with open(f"{image_path}.txt", 'r', encoding='utf-8') as f:
                if search_text in f.read():
                    print(f"Найдено изображение: {filename}")

# Пример использования
file_path = 'путь_к_вашей_папке'
search_for = 'текст_для_поиска'
search_in_folder(file_path, search_for)

Комментарии

  • Точность OCR: Как упомянуто в источнике, качество распознавания текста может варьироваться. В случае, если распознавание не точно, может понадобиться использовать дополнительные методы, такие как "нечеткая логика", для улучшения результатов поиска.

  • Хранение данных: Сохраняйте текстовые файлы рядом с изображениями, чтобы упростить доступ к данным.

  • Дополнительные варианты: Вы также можете рассмотреть использование программного обеспечения с поддержкой OCR, например Adobe Acrobat Pro, однако это требует лицензии и может быть не так удобно, если у вас много изображений для обработки.

Заключение

Использование OCR для поиска изображений по тексту является мощным инструментом как для личного, так и для профессионального использования. С помощью простого скрипта вы можете автоматизировать процесс поиска, что существенно сэкономит ваше время и усилия.

Оцените материал
Добавить комментарий

Капча загружается...