问题描述
我有一张 Mat 形式的图像。我正在使用 opencv c++。 我想将此图像扭曲到另一架飞机。我已将原始图像划分为 15x15 网格。所有网格点都被视为原始顶点。我正在做一些操作并在新平面中获取目标顶点。所有原始网格顶点在新平面中都有相应的目标顶点。如何根据目标顶点和原始顶点将图像扭曲到新平面。
我正在考虑这样做 -> 在原始平面和新平面中取出每个四边形并找到它们之间的单应性。现在以某种方式将每个四边形扭曲到新平面,但我不知道该怎么做。有人可以建议我如何做到这一点或其他一些更好的方法吗?
解决方法
为每个网格计算单应性并计算地图。地图(x0,y0)= x1,y1。目标平面上的位置 (x0,y0) 映射到源平面上的 (x1,y1)。即 [ax1 ay1 a]T = H [x0,y0,1]T
然后使用 cv::remap