Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение прострнаственных поворотов текста на и 
:(
    Опции темы
ruslan777
Дата 12.7.2012, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2012

Репутация: нет
Всего: нет



Добрый день. Столкнулся с проблемой определения пространственного поворота изображения с текстом. Если текст повернут в плоскости изображения (плоскость xy, а поворот относительно оси z, 1.jpg), то задачу я решил при помощи преобразований Хафа (работает в 99% случаев), но если изображение повернуто оносительно оси х или у (примеры на рисунках 2.jpg и 3.jpg), то у меня пока не получилось придумать толкового алгоритма для детектирования такого поворота. Перекопал кучу информации по даной тематике в интернете, но стабильного алгоритма пока разработать не получилось. Поэтому обращаюсь за помощью к форумчанам. Возможно кому-то приходилось работать с текстовыми изображениями и есть опыт разработки подобных алгоритмов. За любую информацию по даному вопросу буду очень благодарен. Не прошу предоставить мне готовое решение, просто елси есть идеи в каком направлении нужно копать, то поделитесь ими, пожалуйста. Чтобы более понятна была задача поставлю ее так: есть массив байтов изображения (rgb или в оттенках серого) и мне нужно детектировать завалено ли изображение, например, относительно оси х (по у будет аналогично) и на выходе получить ответ типа: завалено сверху, завалено снизу или стоит ровно. Пробовал разбивать изображение на две половинки и сравнивать среднюю интенивно каждой, но результат это не дало. Также пробовал использовать различные фильтры для размытия изображения и определения границ листа, но результата тоже нет. В идеале было б найти координаты 4-ех вершин листа, но пока не знаю как это сделать (задача существенно усложняеться, если фотографировать на белом фоне).

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  1.jpg 35,09 Kb
PM MAIL   Вверх
ruslan777
Дата 12.7.2012, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2012

Репутация: нет
Всего: нет



вот еще файлы
user posted image

user posted image

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  2.jpg 25,30 Kb
PM MAIL   Вверх
maxim1000
Дата 13.7.2012, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



можно попробовать найти строки текста
а по ним - параметры преобразования
тут есть некоторая информация о преобразовании с перспективой: http://en.wikipedia.org/wiki/Texture_mappi...ive_correctness


--------------------
qqq
PM WWW   Вверх
Earnest
Дата 13.7.2012, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



Может, сначала белый лист- четырехугольник расправить до прямоугольника, как он должен быть? Это должно выпрямить и текст. Кстати, то же самое можно сделать и с повернутым в плоскости xy без всякого Хафа. Преобразование выполняется по 4 точкам - билинейное или проективное или просто 2 аффинных ( по 2 треугольникам).

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


--------------------
...
PM   Вверх
baldina
Дата 13.7.2012, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(ruslan777 @  12.7.2012,  17:11 Найти цитируемый пост)
при помощи преобразований Хафа

получаешь координаты линий, образующих строки. при повороте вокруг y они не будут параллельны. при повороте вокруг x их длина будет уменьшаться (увеличиваться)

Добавлено через 23 секунды
перспектива, однако smile
PM MAIL   Вверх
ruslan777
Дата 13.7.2012, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2012

Репутация: нет
Всего: нет



Цитата(maxim1000 @ 13.7.2012,  08:32)
можно попробовать найти строки текста
а по ним - параметры преобразования
тут есть некоторая информация о преобразовании с перспективой: http://en.wikipedia.org/wiki/Texture_mappi...ive_correctness

Из строками игрался долго, алгоритм взял вот тут: http://mechanoid.kiev.ua/programming-text-...egmentator.html, но
из-за излишних шумов этот алгоритм достаточно часто определяет строку там, где ее нет (зачустую сверху и снизу изображения выскакивает по несколько "неправильных" строк). А за ссылку спасибо, реально полезная информация, которую в будущем может использую, хотя пока стоит задача только детектирования поворотов, а не их исправлений.
PM MAIL   Вверх
baldina
Дата 13.7.2012, 10:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(ruslan777 @  13.7.2012,  10:09 Найти цитируемый пост)
зачустую сверху и снизу изображения выскакивает по несколько "неправильных" строк

фильтруйте. статистически.
PM MAIL   Вверх
ruslan777
Дата 13.7.2012, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2012

Репутация: нет
Всего: нет



Цитата(Earnest @ 13.7.2012,  08:35)
Но не понимаю, почему не получилось найти границы белого листа - там же контраст хороший...

у меня стоит задача найти границы не конкретно этого листа, а в общем случае и причем без помощи пользователя. Тоесть при каких-то одних настройках всех параметров программа должна выдавать правильный результат, например в 95% случаев. Могу привести пример изображения где границы листа определить очень сложно:
user posted image
вот один с примеров использования фильтра віделение краев:
user posted image
а вот использование алгоритма выделения текста (границы листа, если фон контрастен, он тоже определяет у меня  как текст):
user posted image
PM MAIL   Вверх
ruslan777
Дата 13.7.2012, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2012

Репутация: нет
Всего: нет



Цитата(baldina @ 13.7.2012,  10:12)
фильтруйте. статистически.

А это как?
И еще хотел спросить какой алгоритм определения строк, если они не горизонтальны? Мой алгоритм работает только с горизонтальными строками, и видит только линию строки, а не координаты ее концов.
PM MAIL   Вверх
baldina
Дата 13.7.2012, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



например так
а проверяйте например так

Добавлено через 1 минуту и 19 секунд
Цитата(ruslan777 @  13.7.2012,  10:41 Найти цитируемый пост)
какой алгоритм определения строк, если они не горизонтальны

посмотрите этот пример
PM MAIL   Вверх
ruslan777
Дата 16.7.2012, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2012

Репутация: нет
Всего: нет



Преобразования Хафа хорошо работают, когда проверяемая область (окно) находиться в центре картинки, и в даном случае угол направления строк текста получаеться достаточно правдоподобныюм. Если же окно сместить вверх или вниз, то результат получаеться положительным через раз (особенно велика вероятность ошибки, если текст имеет таблицы или рисунки). С таких результатов тужело что-то вытянуть. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.