Перейти к содержимому
Compvision.ru

Recommended Posts

Здравствуйте. Возникла необходимость сделать сшивку изображений. Прочёл про стандартный pipeline на сайте opencv. Смотрю исходники в примерах.

Как-то туго. Есть ли где статья, где описан сам процесс.

Если можно, киньте ссылку. Можно на английском, можно на русском.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас продебажил демо код. Нашёл что дольше всех работает фукнция setSeamFinder. Сейчас смотрю исходники, буду думать как ускорить процесс.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет, дольше всех работает всё-таки stitching...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задавайте более конкретный вопрос.

http://docs.opencv.org/2.4/modules/stitching/doc/introduction.html

 

А так вроде в этой книжке было

http://szeliski.org/Book/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, mrgloom.

Ищу способы ускорения. Допустим я знаю как расположены снимки друг относительно друга. Я думаю, это должно помочь. Пробую переписать Stitcer::stitch()

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

https://github.com/Itseez/opencv/blob/2f4e38c8313ff313de7c41141d56d945d91f47cf/modules/stitching/src/stitcher.cpp#L124

Там кстати таймеров понатыкано, можно замерить куски кода.

 

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А может быть подскажите, что занимает большее время: поиск особых точек, собственно соединение изображений или выравнивание получившейся панорамы?

Кстати, где вам репутацию плюсануть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я думаю, что blending в том или ином виде занимает больше всего времени, но я не уверен.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интересный пример: 

Здесь исходные данные:

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что за процессор?

Если надо для встроенной системы сделать, то на FPGA? ARM наверное не потянет?

 

Признаю - понятия матчинг и варпинг относительно сшивки изображений услышал совсем недавно. Скажите, как всё это делается? Если можно, статью или мануал.

Книгу Шилезского (или как правильно по транскрипции) посмотрел, там не очень про это написано.

 

 

Читаю про варпинг. Если это аффинные преобразования, то почему прямые линии переходят в изогнутые?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там perspective projection

 

Сначала находите и  матчите особые точки, потом находите матрицу гомографии через findHomography и через warpPerspective варпаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.

Если можно, ещё вопросы. Тут мне предложили в моём девайсе использовать чип nVidia Tegra K1. Посмотрел описание, достаточно мощный и не очень дорогой (около 100 долларов). Как я понимаю, nVidia специализируется на графике. Какие у них есть ещё преимущества для панорамирования помимо использования CUDA?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

OpenCL, OpenGL, шедеры.

Все для чего нужен GPU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но как я понимаю, даже в классе stitcher есть его конструктор:

Stitcher::createDefault(try_use_gpu);

То есть как-то он его использует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, но нужно тогда собрать OpenCV с поддержкой CUDA.

В стандартных готовых бинарниках она обычно выключена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо. Это тоже читал.

У меня применение написанного там в результате даже дольше работало на 5%.

Может надо ещё что настраивать в openMP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×