Я новичок в OpenCV, и я учусь делать некоторые обработки изображений. Как часть моего проекта, у меня есть проблема деформации изображения в форме эллипса в целевой эллипс. Насколько я понимаю, мне нужно будет вычислить аффинное преобразование между двумя патчами, а затем преобразовать это преобразование в целевой патч. Просматривая интернет-справку, я не нашел способа рассчитать аффинные преобразования между двумя эллиптическими патчами. Я на правильном пути? Я был бы признателен, если бы вы могли дать мне несколько советов, как действовать или где искать дополнительную информацию.
Тот факт, что ваши элементы являются эллипсами, не имеет отношения к вычислению преобразования. Преобразования одинаково хорошо работают с произвольными фигурами. Скажем, у вас есть аффинные преобразования [A] и [B] относительно некоторого источника O, вы хотите преобразование между [A] и [B]. Есть несколько способов думать об этом, самый простой — это получить преобразование из [A] в O, затем из O в [B] и объединить их. От [A] до O — просто обратная величина от [A], а от O до [B] — просто [B], поэтому
final_transform = [B]*inverse([A]);
Вот является аналогичным вопросом, решение с векторными представлениями одинаково справедливо.
Для фактического деформирования вы можете использовать резюме :: warpAffine
Других решений пока нет …