假设我有一张图像 I ( x,y )和一个矢量场 w (< em> x,y ),都在同一规则网格上采样。我的目标是根据矢量场对图像进行扭曲并创建输出图像 J ( u,v )。这是通过将 I 中的点( x,y )映射到 J 中的点( u,v )完成的。问题是我不知道实现此目的的最简单方法是什么。我已经在线阅读了关于解决这类问题的基本方法。
前向映射:只需将位移矢量添加到图像 I 的每个坐标( x,y )。这里的问题是这样,我将在 J 的非规则网格上获得非整数坐标点( u',v'),因为 < em> w ( x,y )不一定是整数值,并且因像素而异。我的问题是:如何将图像插入到整数坐标?例如,如果我想计算 J ( 12,25 )的像素值,如果样本是不在常规网格上?
向后映射:找出 I 中哪个非整数坐标( x',y')对应于整数坐标( u,v )在 J 中,将变换的逆应用于坐标( u,v )。然后可以轻松地插入与 I 中的非整数坐标( x',y')相对应的值。我的问题是:我可以以某种方式将其应用于我的问题吗?我能以某种方式反转位移场吗?如何找到将 J 中的整数值映射到 I 中的非整数值的位移字段的逆矩阵?
为了澄清,我不是在寻找解决该问题的现有方法(我知道例如Matlab和OpenCV中的函数可以做到这一点)。我只想了解其背后的理论并开始自己进行实验。