Алгоритм определения прямоугольной области, содержащей слово, на изображении?

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

4170157800a98019de7575244e686291.png

Входными данными является точка X, Y (на рисунке отмечена красным крестиком).
Выходными данными является прямоугольник Left, Top, Width, Height (на рисунке отмечен голубым цветом).


Универсальность подразумевает под собой работу с любыми размерами, цветами шрифтов и как можно большим количеством типов шрифтов.


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


У кого-нибудь есть другие идеи? Как сегментация слов и картинок реализована в OCR движках?
  • Вопрос задан
  • 3800 просмотров
Пригласить эксперта
Ответы на вопрос 2
lashtal
@lashtal
Тут надо решить много задач:
Определить где текст (блоки текста), правильно повернуть его, определить, был ли клик внутри этой области.
Потом слова можно выделить, используя Connected-component labeling ( en.wikipedia.org/wiki/Connected_Component_Labeling ) наверное.
Вообще, есть же бесплатные OCR библиотеки, они это точно все должны уметь делать.
Ответ написан
Примерно так:
— Сначала обесцвечиваем и уменьшаем количество цветов до 2 (чёрный и белый);
— Идём в одном направлении (верх, вниз, влево или вправо) и ищем 1-2 полностью белых строки. Записываем координаты внутренней;
— Повторяем для всех направлений;
— Получаем область ограниченную внутренними координатами;
— Повторяем для неё;
— Дальше уже идёт разбивка на буквы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы