将图像扭曲到另一个平面

问题描述

我有一张 Mat 形式的图像。我正在使用 opencv c++。 我想将此图像扭曲到另一架飞机。我已将原始图像划分为 15x15 网格。所有网格点都被视为原始顶点。我正在做一些操作并在新平面中获取目标顶点。所有原始网格顶点在新平面中都有相应的目标顶点。如何根据目标顶点和原始顶点将图像扭曲到新平面。

我正在考虑这样做 -> 在原始平面和新平面中取出每个四边形并找到它们之间的单应性。现在以某种方式将每个四边形扭曲到新平面,但我不知道该怎么做。有人可以建议我如何做到这一点或其他一些更好的方法吗?

解决方法

为每个网格计算单应性并计算地图。地图(x0,y0)= x1,y1。目标平面上的位置 (x0,y0) 映射到源平面上的 (x1,y1)。即 [ax1 ay1 a]T = H [x0,y0,1]T

然后使用 cv::remap

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...