1

目前我在 STM32 上使用 MLX90641 传感器来获取温度网格。网格本身是 18x12 像素。我想将此网格双三次插值到 31x23 的网格,我认为这是最合乎逻辑的吗?

我的数学/微积分知识足以掌握双三次插值的概念。但是我无法弄清楚让它在代码中工作。

使用的语言是 C++ 和https://www.paulinternet.nl/?page=bicubic作为来源。

double cubicInterpolate (double p[4], double x) {
    return p[1] + 0.5 * x*(p[2] - p[0] + x*(2.0*p[0] - 5.0*p[1] + 4.0*p[2] - p[3] + x*(3.0*(p[1] - p[2]) + p[3] - p[0])));
}

double bicubicInterpolate (double p[4][4], double x, double y) {
    double arr[4];
    arr[0] = cubicInterpolate(p[0], y);
    arr[1] = cubicInterpolate(p[1], y);
    arr[2] = cubicInterpolate(p[2], y);
    arr[3] = cubicInterpolate(p[3], y);
    return cubicInterpolate(arr, x);
}

我是否循环遍历我的双精度数组并在每个值上调用函数 bicubicInterpolate?为什么他们使用参数double x,double y?

谁能帮我将此功能应用于我的双网格[192]?

谢谢!

4

0 回答 0