假设我有一个图像I(x,y)和一个向量场w(x,y),它们都在同一规则网格上采样。我的目标是根据向量场扭曲图像并创建输出图像J(u,v)。这是通过将I中的点(x,y)映射到J中的点(u,v)来完成的。问题是我不知道最简单的实现方法。我在网上阅读到这类问题基本上有两种主要方法。
前向映射:只需将位移向量添加到图像I的每个坐标(x,y)即可。问题在于这样做会得到非整数坐标点(u',v'),因为w(x,y)不一定是整数值,并且从像素到像素也有所变化。我的问题是:如何将该图像插值到整数坐标?例如,如果我想计算J(12,25)的像素值,如果样本不在规则网格上,我应该使用哪些样本进行插值?
反向映射:通过将转换的逆应用于坐标(u,v),找出图像I中对应于J中整数坐标(u,v)的非整数坐标(x',y')。然后可以轻松地对对应于非整数坐标(x',y')的值进行插值。我的问题是:我能否以某种方式将其应用于我的问题?我能否反转位移场?我如何找到将整数值从J映射到I中的非整数值的位移场的逆?
为了澄清,我不是在寻找现有解决方案的实现(我知道Matlab和OpenCV等函数可以做到这一点)。我只想理解其背后的理论,并开始自己进行实验。
前向映射:只需将位移向量添加到图像I的每个坐标(x,y)即可。问题在于这样做会得到非整数坐标点(u',v'),因为w(x,y)不一定是整数值,并且从像素到像素也有所变化。我的问题是:如何将该图像插值到整数坐标?例如,如果我想计算J(12,25)的像素值,如果样本不在规则网格上,我应该使用哪些样本进行插值?
反向映射:通过将转换的逆应用于坐标(u,v),找出图像I中对应于J中整数坐标(u,v)的非整数坐标(x',y')。然后可以轻松地对对应于非整数坐标(x',y')的值进行插值。我的问题是:我能否以某种方式将其应用于我的问题?我能否反转位移场?我如何找到将整数值从J映射到I中的非整数值的位移场的逆?
为了澄清,我不是在寻找现有解决方案的实现(我知道Matlab和OpenCV等函数可以做到这一点)。我只想理解其背后的理论,并开始自己进行实验。