将图像扭曲到另一个平面
Posted
技术标签:
【中文标题】将图像扭曲到另一个平面【英文标题】:Warping an image to another plane 【发布时间】:2021-09-21 17:26:20 【问题描述】:我有一个 Mat 形式的图像。我正在使用opencv c++。 我想将此图像扭曲到另一个平面。我将原始图像划分为 15x15 网格。所有的网格点都被认为是原始顶点。我正在做一些操作并在新平面上获取目标顶点。所有原始网格顶点在新平面中都有对应的目标顶点。如何根据目标顶点和原始顶点将图像扭曲到新平面。
我正在考虑这样做 -> 在原始平面和新平面中获取每个四边形并找到它们之间的单应性。现在以某种方式将每个四边形扭曲到新平面,但我不知道该怎么做。有人可以建议我如何执行此操作或其他更好的方法吗?
【问题讨论】:
这是一次性的事情,还是必须在应用程序中经常发生的事情? 会发生多次 你能举出例子(图片)吗?你需要什么类型的扭曲,仿射,透视,线性插值网格? 【参考方案1】:计算每个网格的 Homography 并计算地图。地图(x0,y0)= x1,y1。目标平面上的位置 (x0, y0) 映射到源平面上的 (x1, y1)。即 [ax1 ay1 a]T = H [x0, y0, 1]T
然后使用cv::remap
【讨论】:
以上是关于将图像扭曲到另一个平面的主要内容,如果未能解决你的问题,请参考以下文章