我的图像样本位置不均匀,我想插值到规则网格,因为(除其他外)大多数图像图形函数都需要规则网格。
我注意到有一些 MatLab 函数(例如参见 Image interpolation from random pixels)显然可以执行此操作,但找不到执行此操作的 R 包。
这是一个简单的例子。
#make up some 2D func
y<-matrix(rep(1:10,10) -.5 + runif(100),nrow=10)
x<-matrix(rep(1:10,10) -.5 + runif(100),nrow=10)
inmat<-sin(x) + cos(y)
因此 inmat
的值在随机位置。我想要某种 outmat<-interpolate(inmat,x,y,gridx,gridy)
函数在哪里 inmat
, x
, 和 y
要么都是矩阵,要么都是向量(展开的矩阵)。
我还看到 SciPy 有 http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html这是做什么的。 R
中有这样的功能吗?包还是我需要从 SciPy
移植或 MatLab
代码?
最佳答案
链接页面提供了指向执行克里金法或其他插值函数的大量 R
包的指针。
我发布我个人的选择作为答案只是为了结束这个问题。
我发现 akima::interp
是一个简单的函数,可以对任意样本位置集合进行二维插值。
这并不意味着它对每个人都是最好的,我的猜测是那些使用地理数据的人可能更喜欢设计用于处理特定地理调查相关文件类型和纬度/经度坐标系的软件包。
关于r - 如何从不均匀的二维位置插值到规则网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19094868/