椭圆贴片之间的仿射变换

时间:2012-10-07 15:02:48

标签: c++ opencv affinetransform

我是OpenCV的新手,我正在学习做一些图像处理。作为我项目的一部分,我遇到的问题是将图像块以椭圆形式扭曲成目标椭圆。据我所知,我需要计算两个补丁之间的仿射变换,然后将此变换扭曲到目标补丁中。浏览互联网寻求帮助,我没有找到一种方法来计算两个椭圆补丁之间的仿射变换。我是在正确的轨道上吗?如果您能给我一些建议或者在哪里寻找更多信息,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

元素是椭圆的事实与变换的计算无关。变换在任意形状上同样有效。假设您对某些原点O有仿射变换[A]和[B],您希望在[A]和[B]之间进行变换。有几种方法可以考虑这样做,最简单的方法是从[A]转换为O,然后从O转换为[B]并将它们组合起来。 [A]到O只是[A]的倒数,O到[B]只是[B]所以

final_transform = [B]*inverse([A]);

here是一个类似的问题,使用向量表示求解同样有效。

要进行实际的变形,您可以使用cv::warpAffine