Оптическое распознавание символов (OCR) – это технология, которая позволяет компьютерам распознавать и извлекать текст из изображений или отсканированных документов. Он имеет широкое применение: от оцифровки печатных материалов до автоматизации задач по вводу данных. В этой статье мы рассмотрим PyTesseract, популярную библиотеку оптического распознавания символов для Python, и обсудим различные методы извлечения текста на примерах кода.
Настройка PyTesseract:
Прежде чем мы углубимся в различные методы, давайте убедимся, что PyTesseract правильно настроен в вашей системе. PyTesseract — это оболочка Python для Tesseract, механизма OCR с открытым исходным кодом. Чтобы использовать PyTesseract, вам необходимо указать путь к исполняемому файлу Tesseract. Вот как это можно сделать:
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'<full path to your tesseract executable>'
Метод 1: базовое извлечение текста из изображений
Самый простой способ извлечь текст из изображения с помощью PyTesseract — передать путь к файлу изображения функции image_to_string. Вот пример:
import pytesseract
from PIL import Image
# Open the image file
image = Image.open('path/to/image.jpg')
# Extract text from the image
text = pytesseract.image_to_string(image)
# Print the extracted text
print(text)
Метод 2: предварительная обработка для повышения точности
Иногда предварительная обработка изображения может значительно повысить точность распознавания. Общие методы предварительной обработки включают изменение размера, бинаризацию, удаление шума и исправление перекоса. Вот пример, демонстрирующий изменение размера и бинаризацию:
import pytesseract
from PIL import Image
from PIL import ImageOps
# Open the image file
image = Image.open('path/to/image.jpg')
# Resize the image for better OCR accuracy
resized_image = image.resize((800, 600))
# Convert the image to grayscale and apply binarization
bw_image = ImageOps.grayscale(resized_image).point(lambda x: 0 if x < 128 else 255, '1')
# Extract text from the preprocessed image
text = pytesseract.image_to_string(bw_image)
# Print the extracted text
print(text)
Метод 3: извлечение области интереса (ROI)
В некоторых случаях вас может заинтересовать только извлечение текста из определенной области изображения. PyTesseract позволяет вам определить ограничивающую рамку или координаты для извлечения текста из определенной области интереса. Вот пример:
import pytesseract
from PIL import Image
# Open the image file
image = Image.open('path/to/image.jpg')
# Define the region of interest (coordinates: left, top, right, bottom)
roi = (100, 100, 500, 300)
# Extract text from the region of interest
text = pytesseract.image_to_string(image.crop(roi))
# Print the extracted text
print(text)
В этой статье мы рассмотрели различные методы извлечения текста с помощью PyTesseract. Мы рассмотрели базовое извлечение текста из изображений, методы предварительной обработки для повышения точности и извлечение области интереса. Поэкспериментируйте с этими методами, чтобы добиться наилучших результатов в задачах оптического распознавания символов. Оптическое распознавание символов может стать мощным инструментом автоматизации процессов извлечения и оцифровки данных.
Не забудьте установить необходимые зависимости, включая PyTesseract и Tesseract, перед запуском примеров кода. Удачного распознавания текста!