Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаление цилиндрического искажения 
:(
    Опции темы
blackbanny
Дата 10.7.2013, 05:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток!
в наличии есть фотографии винных бутылок, а точнее их этикеток. мне нудно с этих фотографий выцеплять текст(будет делаться с помощью специального sdk), но перед тем, как выцеплять текст следует предобработку. предобработка заключается в удалении цилиндрического искажения. подскажите, пожалуйста, где можно про это почитать, какие алгоритмы и может быть знаете библиотеки, которые решают данную проблему(без разницы на каком ЯП)?
PM MAIL   Вверх
Pavia
Дата 10.7.2013, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



OpenCV
Но одними геометрическими искажениями вы не отделаетесь. Нужно ещё фокус восстанавливать. И бинаризацию.
Идея простая картинка разбиваеться на участке (4x4 или 16x16) где искажения можно принять за линейные и тем самым далее работаем уже с прямоугольниками. Геометрическое искажение устроняем через билинейное преобразование. 
PM MAIL   Вверх
blackbanny
Дата 10.7.2013, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Pavia @ 10.7.2013,  07:16)
OpenCV
Но одними геометрическими искажениями вы не отделаетесь. Нужно ещё фокус восстанавливать. И бинаризацию.
Идея простая картинка разбиваеться на участке (4x4 или 16x16) где искажения можно принять за линейные и тем самым далее работаем уже с прямоугольниками. Геометрическое искажение устроняем через билинейное преобразование.

спасибо) 
мысль использовать OpenCV промелькнула в голове, но подумал, что можно обойтись без сторонних библиотек...
ну раз так не выйдет, то можете подсказать ссылки на статьи где нечто подобное делается с помощью OpenCV?
PM MAIL   Вверх
Pavia
Дата 10.7.2013, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



www.aishack.in/2010/08/sudoku-grabber-with-opencv/
Искать надо по тегам
remap, билинейное преобразование.
Статьи мне не попадались. OpenCV вам не сильно поможет. Решётку надо будет ручками создавать. И восстанавления фокуса для каждого квадрата делать тоже ручками, так как у каждого свой параметр.
PM MAIL   Вверх
blackbanny
Дата 10.7.2013, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



т.е. автоматически мне не удастся сделать, то что я хочу?
PM MAIL   Вверх
blackbanny
Дата 11.7.2013, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Pavia @  10.7.2013,  07:50 Найти цитируемый пост)
Решётку надо будет ручками создавать. И восстанавления фокуса для каждого квадрата делать тоже ручками, так как у каждого свой параметр. 

в принципе, можно подобрать какой-нибудь усредненный параметр для всех изображений...
PM MAIL   Вверх
blackbanny
Дата 16.7.2013, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот кстати ссылки на сами фото этикеток:
тыц1
тыц2
тыц3

подскажите, что по шагам мне нужно сделать, чтобы убрать все искажения, т.е. предоставить более пригодные изображения для распознавания для FineReader Engine?
думаю реализовывать с помощью OpenCV
PM MAIL   Вверх
blackbanny
Дата 17.7.2013, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



up
PM MAIL   Вверх
mrgloom
Дата 17.7.2013, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



для начала надо хотя бы найти контур ограничивающий этикетку. (я так думаю нижний край должен обязательно попадать)
PM MAIL   Вверх
blackbanny
Дата 18.7.2013, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mrgloom @  17.7.2013,  14:59 Найти цитируемый пост)
для начала надо хотя бы найти контур ограничивающий этикетку. (я так думаю нижний край должен обязательно попадать) 

с какой целью? что дальше?

PM MAIL   Вверх
mrgloom
Дата 18.7.2013, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

с какой целью? что дальше?

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

если известна аналитическая формула для искажения, то наверно по расстоянию от центра фигуры и нескольких точек на дуге можно установить параметры искажения, имея параметры искажения вы можете сделать обратное преобразование.
если же аналитическая формула неизвестна, то я так и не понял как считать, можно предположить, что у нас есть прямоугольник(4 отрезка) и есть искаженный прямоугольник(4 дуги),  допустим фиксируем краевые точки у 2-х соответствующих отрезков, а как поставить в соответствие точки между краевыми точками не очень понятно.

мне кажется что искажение восстановимо с точностью до масштаба.

можете посмотреть похожую задачу.
http://dxdy.ru/topic61037.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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