Mam nierównomiernie rozmieszczone próbki obrazu i chciałbym interpolować do zwykłej siatki, ponieważ (między innymi) większość funkcji graficznych wymaga regularnej siatki. Zauważam, że istnieją pewne funkcje MatLab (patrz na przykład Image interpolation from random pixels), które najwyraźniej to zrobią, ale nie mogą znaleźć pakietu R, który to robi.
Oto prosty przykład.Jak interpolować z niejednorodnych lokalizacji 2D do zwykłej siatki?
#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)
Więc wartości inmat
są w losowych lokalizacjach. Chcę funkcji outmat<-interpolate(inmat,x,y,gridx,gridy)
gdzie inmat
, x
i y
są albo wszystkie macierze lub wszystkie wektory (nieopakowane macierze).
Widzę również, że SciPy ma http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html, która to robi. Czy istnieje taka funkcja w pakiecie R
, czy też trzeba podać kod od SciPy
lub MatLab
?
Zobacz także http://stackoverflow.com/questions/18769146/interpolating-an-irregular-grid – Andrie
możliwy duplikat [Wykreślanie interpolowanych danych na mapie] (http://stackoverflow.com/questions/10047870/plotting- interpolowane-dane-na-mapie) – Spacedman
@Andrie dzięki - patrzę na funkcję 'akima :: interp' i będę odpowiadał. –