![]() |
|
|
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Hough transform - самое медленное преобразование. Для таких огромных размеров не подойдет. Надо упрощать. Пути два. Либо уменьшают dpi картинки (при 300 dpi Hough работает еще прекрасно). Либо так - выделяют компоненты связности, т.е. выполняют кластеризацию (это реализуется довольно быстро), строят обрамляющие прямоугольники, выбирают из каждого прямоугольника по одной точке, и только для них считают Hough. Метод работает. Дополнительно нужны кое-какие меры предосторожности, чтобы учесть разные размеры букв. Обычно выполняют сливание 2-3-х ближлижайших кластеров. При кластеризации одновременно удаляют слишком большие кластеры (т.е. рисунки, таблицы, линии и т.д.). Либо, наоборот, выделяют тонкие линии, если есть, и их тоже используют для определения угла наклона. Используют также преобразование Радона, оно намного быстрее Hough, но смысл тот же. Насчет искривления строк - Хаф тут не поможет. Пожалуй, это самая сложная задача в document processing. Мне известны пока только два метода. Но лично я в своей программе пока еще этого реализовать не смог. |
|||
|
||||
| Y-Vladimir |
|
||||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 16.7.2004 Где: Казань Репутация: 1 Всего: 6 |
Ну так у рамки есть и вертикальные и горизонтальные линии - алгоритм может и сбится. Лучше текстовый блок как-то выцепить...
Я все-таки хочу найти несколько текстовых блоков и там определить угол, потом методом голосования (среднее не покатит - слишком высокая погрешность будет, если хоть один блок даст сильно отличающийся угол)
В приципе в моем случае (да и в других тоже) раза в четыре можно бесболезненно уменьшить изображение и потом его обрабатывать, но размер все равно получается не маленький...
Но если в печтаном тексте выделять компоненты связности, то в каждый такой компонент будет входить либо всего одна буква (изредка - несколько), либо ее часть. Это конечно зависит от шрифта, но в общем случае будет так.
А не будет ли преобразование Хафа в таком случае искать линии в буквах, вместо линий ИЗ букв?
Спасибо за информацию о преобразовании Радона, надо будет почитать...
А как же выделение параметрических дуг с помощью преобразования Хафа?
Да, это весьма сложная задача, хотя ИМХО сегментация т.е. выделение текстовых блоков, изображений, таблиц будет потруднее, хотя может я и ошибаюсь.
А что ты за программу писал? Очень интересно было бы узнать... |
||||||||||||||||||
|
|||||||||||||||||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |