Как реализовать выделение части текста в фотографии и обработку текста на картинке в текстовый файл?
Хотел какой то проект придумать более нестандартный чем блоги, магазины и т.д И хотел у вас спросить совета по реализации. Я опишу только основную часть функционала, остальное в силах сам реализовать.
Приложение для обучения иностранному языку, касательно только написания эссе и коректировки.
ТЗ:
- У человека есть возможность загрузить как фото, так и просто текстовый документ различных форматов .doc, .txt,. pdf
- Другой участник, может сделать проверку на ошибки
Я представляю это таким образом, что проверяющий может на изображении выделить маркером текст, рядом выдвенится сайдбар, или небольшое окошко в месте клика, где он впишет корректировку текста. После отправки возможного отправления корректировки скрываются. Их потом можно открыть по нажатию на закрашенный маркером текст и дополнительно можно также открыть список всех исправлений.
Меня интересует две вещи:
- Как лучше реализовать выделение текста маркером, возможно через canvas? Сам клик отследить, записать координаты плюс минус могу, разбить на отдельный компонент, который будет в себе хранить эти данные. Но вот как лучше реализовать выделение фотографии для меня вопрос. Подобие комментирования как в фигме например проекта, только чуть специализировать это под задачу сочинений. И тут нюанс, что все равно даже загруженный текст из ворда, тоже должен выводится как фотография наверное? Чтобы его также комментировать. Независимо от источника в итоге для проверяющего выглядеть должен быть одинаково контент.
- Хотелось чуть питон выучить, и так как он известен на различные нейронки, обработку данных. Я хотел бы добавить обработку фотографии для того, чтобы автоматически перевести написанное в текстовый формат. Потом дать возможность тому, кто загружает это эссе потом откорректировать полученный текст. Чтобы у проверяющих была также опция посмотреть в виде текста эссе.
Буду вам благодарен за совет, пока примусь за отрисовку макета и верстки его. И надеюсь, подскажите что лучше использовать для реализации.
P.S Хотелось бы иметь конечно какую то ранжировку между исправлениями. То есть, чтобы высвечивались вначале корректировки от людей с большим рейтингом, или можно переключатся между различными версиями предложенным. Пока что я думаю упростить и просто открывать разные варианты исправлений. Но разумнее было бы, если можно как то при одинаковых блоках выделенных для исправления отлавливать этот момент, но я пока не представляю, как даже если выбрать, что область похожая, то дополнительно ещё обработать само исправление и понять относится ли оно к одному и тому же виду. Это надо сделать какой то анализ текста.
Дополнительно:
- Хотелось чуть питон выучить
Вот с этого и стоит начинать.
А не с вопроса "как лучше грабить корованы", базирующегося на полном непонимании, как и что реализовать вообще.
Для начала придумайте способ достать текст из pdf, и протестируйте не на одном деальном образце, а на паре десятков файликов из разных источников.
А вот дополнительная обработка текста, конвертирования форматов, анализа текста. Как дополнительные задачи для функциональности. В дополнении к предыдущему вопросу моему про совмещений приложений на разных стэках, просто вот хотел на отдельном инстансе какую то тяжелую работу вынести.
Это хренова туча проблем с распознаванием, а ваши фантазии на эту тему - маниловщина.
https://www.google.com/search?q=mdn+canvas+filltex...
Но у вас там речь идет о редактировании текста на фото или pdf, Причем вы хотите фото использовать как базовый вариант. Для того, чтобы редактировать текст его сперва придется распознать. Если вы думаете, что это легко - вперед, дерзайте.
Конечно, OCR существуют с прошлого тысячелетия. Но качество распознавания "не всегда на высоте", так сказать.
Я не понимаю, почему ты так близко воспринял эту проблему, я не летаю в облаках и не жду адекватного результата.
Ответы:
Распозновалка это tesseract. Ей можно пробовать доставать текст.
- На каракулях изучающего английский тессеракт сломается.
А применять тессеракт, чтобы распознать текст, переведенный в картинку из документа - это... вот не помню, как на Тостере с матерной, трехэтажной, экспрессивной лексикой с переходом на личности. - Adamos, не из документа. Зачастую эссе пишут на курсах от руки, поэтому изначально нету в формате документа. Поэтому если дополнительно можно процентов 60 похоже перевести в документ, то это уже неплохо. Так как человек при желании может подредактировать вручную документ.
выделение части текста в фотографии
Гугли: Project Naptha . Под капотом Tesseract.js
- Спасибо
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Для решения данной задачи можно воспользоваться библиотекой для обработки изображений, такой как OpenCV в языке программирования Python.
Прежде всего, необходимо установить библиотеку OpenCV, если она еще не установлена. Для этого можно воспользоваться менеджером пакетов pip:
pip install opencv-python |
pip install opencv-python
Затем можно написать скрипт на Python, который будет загружать изображение, выделять на нем нужную часть текста и обрабатывать его. Ниже приведен пример кода:
import cv2 # Загрузка изображения image = cv2.imread('image.jpg') # Выделение нужной части текста на изображении cropped_image = image[100:300, 200:400] # Пример координат для выделения текста # Обработка текста на изображении # Например, можно воспользоваться OCR библиотекой, такой как Tesseract # Для этого необходимо установить библиотеку pytesseract # pip install pytesseract import pytesseract # Преобразование выделенной части изображения в текст text = pytesseract.image_to_string(cropped_image) # Запись текста в текстовый файл with open('text.txt', 'w') as file: file.write(text) print("Текст успешно извлечен и записан в файл text.txt") |
import cv2 # Загрузка изображения image = cv2.imread('image.jpg') # Выделение нужной части текста на изображении cropped_image = image[100:300, 200:400] # Пример координат для выделения текста # Обработка текста на изображении # Например, можно воспользоваться OCR библиотекой, такой как Tesseract # Для этого необходимо установить библиотеку pytesseract # pip install pytesseract import pytesseract # Преобразование выделенной части изображения в текст text = pytesseract.image_to_string(cropped_image) # Запись текста в текстовый файл with open('text.txt', 'w') as file: file.write(text) print("Текст успешно извлечен и записан в файл text.txt")
Этот скрипт загрузит изображение, выделит нужную часть текста, обработает его с помощью OCR (оптического распознавания символов) и запишет результат в текстовый файл. Пожалуйста, учтите, что координаты выделения текста на изображении могут быть разными в зависимости от вашего конкретного случая.

Для реализации выделения части текста на фотографии и его обработки в текстовый файл можно воспользоваться библиотекой Tesseract OCR.
1. Установите библиотеку Tesseract OCR на ваш компьютер. Для этого перейдите на официальный сайт проекта и скачайте установочный файл для вашей операционной системы.
2. Загрузите изображение с текстом, который вы хотите извлечь, на свой компьютер.
3. Создайте скрипт на языке программирования, который будет использовать Tesseract OCR для обработки изображения и извлечения текста. Пример скрипта на языке Python:
from PIL import Image import pytesseract # Открываем изображение img = Image.open('image.jpg') # Преобразуем изображение в текст text = pytesseract.image_to_string(img) # Сохраняем текст в файл with open('output.txt', 'w') as file: file.write(text)
4. Запустите скрипт на вашем компьютере. После выполнения скрипта в файле output.txt будет содержаться текст, извлеченный из изображения.
5. Проверьте файл output.txt, чтобы убедиться, что текст успешно извлечен.
Таким образом, используя библиотеку Tesseract OCR и написав соответствующий скрипт на языке программирования, вы сможете легко выделить часть текста на фотографии и обработать его в текстовый файл.