椭圆形斑块之间的仿射变换

Affine transform between elliptical patches

本文关键字:仿射变换 之间 椭圆形      更新时间:2023-10-16

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

元素是省略号的事实与转换的计算无关。 变换在任意形状上同样有效。 假设你对某个原点 O 有仿射变换 [A] 和 [B],你想要 [A] 和 [B] 之间的变换。 有几种方法可以考虑这样做,最简单的一种是将转换从 [A] 转换为 O,然后从 O 转换为 [B] 并将它们组合在一起。 [A] 到 O 只是 [A] 的逆数,O 到 [B] 只是 [B] 所以

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

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

要进行实际的翘曲,您可以使用cv::warpAffine