我正在尝试为interp2寻找一个等效的opencv函数,我理解这一点
cv::remap
是一种很好的方法。
但是,如果我有以下内容:
f2 = interp2( x, y, f, x2, y2, 'bicubic' );
其中x, y, x2
和y2
都是(例如m x n)矩阵,我不知道如何使用cv::remap
。
我如何使用remap
?我知道我必须将它转换成地图......但我无法这样做。
并且,还有其他任何可以按照matlab函数的方式进行interp2
吗?
答案 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。