Jump to content
Compvision.ru
Sign in to follow this  
mrgloom

Как сделать piecewise affine warp быстро?

Recommended Posts

Как сделать piecewise affine warp наиболее быстро?

То что сейчас есть:

Берется список трианглов и по 1 варпается на 1 потоке через warpAffine(для каждого триангла берется кроп вокруг него, варпается изображение и маска и вставляется на dst картинку по маске)

 

Варианты:

1. Сделать n тредов, каждый варпает свой триангл, будут ли проблемы при записи в 1 dst изображение?

2. Возможно быстрее посчитать координаты и сделать 1 раз remap?

3. Использовать cuda::warpAffine / cuda::remap.

4. Использовать что то типа opengl просто отрисовывая трианглы (они заранее заданы и константы, т.е. меняется только положение на dst изображении)

 

Еще варианты? Подводные камни?

Share this post


Link to post
Share on other sites

Делал как то, использовал во многих проектах.

Работает быстро вот залил на гит: https://github.com/Smorodov/PiecewiseAffineWarper 

Документацией не озадачивался, т.к. использовал только для себя.

 

Пример использования можно посмотреть здесь: https://github.com/Smorodov/FaceRotate/blob/master/main.cpp  но тут может быть более старая версия piecewise affine warper-а.

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

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×