mrgloom 242 Жалоба Опубликовано March 16, 2018 Как сделать piecewise affine warp наиболее быстро? То что сейчас есть: Берется список трианглов и по 1 варпается на 1 потоке через warpAffine(для каждого триангла берется кроп вокруг него, варпается изображение и маска и вставляется на dst картинку по маске) Варианты: 1. Сделать n тредов, каждый варпает свой триангл, будут ли проблемы при записи в 1 dst изображение? 2. Возможно быстрее посчитать координаты и сделать 1 раз remap? 3. Использовать cuda::warpAffine / cuda::remap. 4. Использовать что то типа opengl просто отрисовывая трианглы (они заранее заданы и константы, т.е. меняется только положение на dst изображении) Еще варианты? Подводные камни? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 16, 2018 Делал как то, использовал во многих проектах. Работает быстро вот залил на гит: https://github.com/Smorodov/PiecewiseAffineWarper Документацией не озадачивался, т.к. использовал только для себя. Пример использования можно посмотреть здесь: https://github.com/Smorodov/FaceRotate/blob/master/main.cpp но тут может быть более старая версия piecewise affine warper-а. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах