Jump to content
Compvision.ru
Khludenkov

Сшивка изображений (images stitching)

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Спасибо, mrgloom.

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

 

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

 

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

Share this post


Link to post
Share on other sites

Там perspective projection

 

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

Share this post


Link to post
Share on other sites

Спасибо.

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

Share this post


Link to post
Share on other sites

OpenCL, OpenGL, шедеры.

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

Share this post


Link to post
Share on other sites

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

Stitcher::createDefault(try_use_gpu);

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×