[OCR] Как очистить картинку от шумов для Tesseract?
и(ли) может шумодав найти
остальное, вроде рамку вырезать - руками
блюр, потом пороговый фильтр для конвертации в чбДа, я так уже сделал (сглаживание + пороговая обработка с otsu-порогом).
остальное, вроде рамку вырезать - рукамиДа, попробую. Правда опасаюсь потерь в производительности приложения.
Да, попробую. Правда опасаюсь потерь в производительности приложения.у тебя достаточно простые преобразования изображения (блюр, вырезание рамки и т.д.) делаются значительно дольше, чем трудоемкая операция (распознать текст) над тем же изображением?
вырезание рамкиСглаживание и пороговая обработка происходят быстро в сравнении со временем распознавания.
Но, что касается вырезания рамки, то у меня есть опасения. Дело в том, что мне на одном изображении нужно выделить несколько областей распознавания (около ста), каждая в своей рамке, причем рамка — это граница слегка наклоненного прямоугольника. Поэтому, чтобы вырезать образ, нужно будет сначала повернуть рамку (трудоемкая операция), а потом вырезать образ. Можно было бы сразу вырезать образ (т.к. Тессеракт устойчив к небольшим наклонам текста), но кусок рамки (т.к. она наклонена) вроде бы все равно остается.
можно же сразу вырезать наклоненный прямоугольник
можно же сразу вырезать наклоненный прямоугольникДа, да, остается только это. Пока других идей нет.
заранее наклон рамки не определён? то есть у тебя задача найти на картинке блоки текста, вырезать и распознать?
заранее наклон рамки не определён?Да, не определен.
то есть у тебя задача найти на картинке блоки текста, вырезать и распознать?
Да, да, блоки текста (примерно одно слово) в прямоугольных рамках, возможно слегка наклоненных. Причем этих блоков (ячеек) много, около ста.
то есть тут надо найти все прямые, потом прямоугольники на картинке, определить наличие в них текста... жуть, тут ты быстро воткнёшься в серьёзный такой машин лёрнинг
а зачем такая задача?
то есть тут надо найти все прямые, прямоугольники на картинке, определить наличие в них текста... жутьАлгоритм для нахождение прямоугольников с текстом я уже написал. Кстати, несложный.
а зачем такая задача?
Если привинтить уже готовый UI, будет полезная для определенной группы пользователей штука. Пока больше сказать не могу.
можно же сразу вырезать наклоненный прямоугольникОказывается можно сделать все проще, используя следующую особенность Тессеракта: он легко игнорирует связную(!) целиковую границу прямоугольника, внутри которого расположен текст! Поэтому достаточно отступить вовне на несколько пикселей, чтобы вся граница прямоугольника целиком оказалась в области распознавания. Тогда всё ок!
Оставить комментарий
nikola1956
Добрый день!У меня неожиданно возникла задача, связанная с OCR (Optical Character Recognition). Поискав в интренете, решил использовать для этих целей Tesseract. Довольно просто я подключил его к своему проекту и протестировал на разных изображениях. Выяснилось, что этот Тессеракт хочет чистых бинарных изображений и всякий шум в области распознавания существенно влияет на результаты его работы.
Но вот как очистить изображения от кусочков рамок по краям и как убрать мелкие штришки, я не знаю. Может быть кто-нибудь из форумчан знает готовые бесплатные библиотеки или ссылки на известные методы, которые сделают эту работу?
Да, Тессеракт хорош тем, что распознает "разорванные", несвязные образы, но вот делает он это хорошо только на чистых картинках без шумов. Поэтому остро встает вопрос: как удалить шумы с изображения?