作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 OpenCV 的新手,正在学习进行一些图像处理。作为我项目的一部分,我遇到了将椭圆形式的图像补丁变形为目标椭圆的问题。据我所知,我需要计算两个补丁之间的仿射变换,然后将此变换扭曲到目标补丁中。浏览互联网寻求帮助,我没有找到计算两个椭圆 block 之间的仿射变换的方法。我在正确的轨道上吗?如果您能给我一些如何进行的建议或到哪里寻找更多信息,我将不胜感激。
最佳答案
您的元素是椭圆这一事实与变换的计算无关。变换对任意形状同样有效。假设你有关于原点 O 的仿射变换 [A] 和 [B],你想要 [A] 和 [B] 之间的变换。有几种方法可以考虑这样做,最简单的一种是从 [A] 到 O,然后从 O 到 [B] 的转换并将它们组合起来。 [A] 到 O 只是 [A] 的倒数,O 到 [B] 只是 [B] 所以
final_transform = [B]*inverse([A]);
here 是一个类似的问题,用 vector 表示求解同样有效。
要进行实际变形,您可以使用 cv::warpAffine
关于c++ - 椭圆 block 之间的仿射变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769913/
我是一名优秀的程序员,十分优秀!