这就是InterpolationBilinear班级应该做的事情。请参阅文档。它唯一做的就是在矩形排列的四个点之间实现双线性插值。该公式在此处进行了解释,您也可以很容易地自己实现它。
问题是:在你的例子中float x是什么?float y因为InterpolationBilinear.interpolate它们应该代表样本矩形四个角之间的分数位置。
或者您想要float x并float y表示数组中的元素编号?例如 (4.3,7.1) 将意味着在元素 (4,7)、(4,8)、(5,7) 和 (5,8) 之间进行插值?interpolate那么是的,您只需将这四个值与 x 中的小数位置 0.3 和 y 中的 0.1 一起插入(或您自己实现的那个简单公式)。
编辑您现在已经澄清x并且应该表示数组中y的小数位置,我们称之为它,并假设它是 10 x 10 即索引在两个维度上从 0 到 9。raw[][]
要进行插值,(x,y)您只需要找到正方形所在的位置(x,y),然后在四个角之间进行插值。在 x 方向上,索引将是紧接在 上方和下方的整数x*9,即Math.floor(x*9)和Math.floor(x*9) + 1-- 在 y 中的想法相同,但带有y*9。现在你有你的四个角了。将它们代入公式。小数位置将类似于xfrac = x*9 - Math.floor(x*9)and yfrac = y*9 - Math.floor(y*9)。也将它们插入公式中。
这必须对目标数组中的每个点重复。请注意,x上面段落中的 将等于i/19并且y等于j/19wherei和j是目标数组的索引。