cv :: remap(在opencv中)和interp2(matlab)

时间:2013-11-11 17:24:23

标签: c++ matlab opencv

我正在尝试为interp2寻找一个等效的opencv函数,我理解这一点 cv::remap是一种很好的方法。

但是,如果我有以下内容:

f2 = interp2( x, y, f, x2, y2, 'bicubic' );

其中x, y, x2y2都是(例如m x n)矩阵,我不知道如何使用cv::remap

我如何使用remap?我知道我必须将它转换成地图......但我无法这样做。

并且,还有其他任何可以按照matlab函数的方式进行interp2吗?

2 个答案:

答案 0 :(得分:2)

如果您还没有找到答案,这就是您应该如何使用它。

remap(f,f2,x2,y2,CV_INTER_CUBIC);

函数重映射假设您正在精确处理定义了f的网格,因此无需传递x,y单调坐标。我几乎可以肯定矩阵不能是CV_64F(双),所以考虑到这一点。

答案 1 :(得分:0)

interp2是插值器 - 如果你得到某些网格的x,y和f值,它会给你x2和y2的值f2。

重新映射 - 根据变形图移动x和y坐标来包裹网格。

如果你想插入常规网格,那么使用缩放(例如cv :: resize)。

如果数据是分散的,那么你可以使用Delaunay三角剖分,然后使用重心插值作为变量或inverse distance weighting