问题标签 [bilinear-interpolation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
360 浏览

r - 如何在 r 中使用双线性插值重新网格化 netCDF 文件

我正在尝试使用指定的经度和纬度列表重新网格化 Netcdf 文件。我想使用双线性插值,虽然我已经看到CDO并且NCO很有帮助,但我想在 r.js 中实现它。我已经看到有一个包含函数的akima包,bilinear.grid但它只使用中断长度或坐标数,而不是特定的。

我的目标经度和纬度在下面


输入数据:

我尝试重新网格的网格是 netcdf 文件的第一步,在这里找到: https ://esgf-node.llnl.gov/search/cmip6/ 命名为:CMIP6.PMIP.CAS.FGOALS-f3-L.lig127k。 r1i1p1f1.Amon.tas.gr

  • 开放式接入点访问
  • 下载(1.2GB)

  • 输入数据网格(一维坐标变量latlon):

    • lat从 -89.5 到 89.5 每 1.0(180 个纬度)
    • lon每 1.25(288 个经度)从 0.625 到 359.375
    • (主数据数组也有无限time维度)

提前致谢

0 投票
1 回答
248 浏览

python - 如何使用 numpy 实现 3D 双线性插值?

我已经达到了这个双线性插值代码(在此处添加),但我想将此代码改进为 3D,这意味着将其更新为使用 RGB 图像(3D,而不仅仅是 2D)。

如果您有任何建议,我很想知道。

这是一维线性插值:

这对于 2D:

0 投票
1 回答
346 浏览

image-processing - 插值与平均值

我是计算机视觉概念的新手,我想知道为什么当我们将图像大小加倍时,我们应该使用双线性插值,其中像素没有值,而不是最近的已知值像素之间的平均值。

0 投票
1 回答
81 浏览

python - 双线性插值的错误图像

我正在实施双线性插值来调整图像大小。双线性插值和调整大小的函数如下:

我正在使用x_ceil = min( old_h - 1, math.ceil(x))y_ceil = min(old_w - 1, math.ceil(y))避免访问原始图像数组的尺寸更大的索引。没有它,我会得到两个维度中最后一个索引的索引超出范围错误。

使用此代码调整大小的图像上包含一个黑色网格。这是一些输出图像。第一张是原图的缩小版,第二张是放大版的!

图像缩小到更小的尺寸

图像放大到更大尺寸

编辑:我已经确定了导致问​​题的确切原因,但我不明白它为什么会导致问题。将两个维度的比例因子从 更改(old/new) (old - 1)/(new - 1)导致无网格结果。我想了解比例因子值如何产生问题。

0 投票
1 回答
126 浏览

c - 使用等距输入提高 2D 直接查找表的性能(嵌入式 C)

我在使用具有等距输入的直接查找表进行 2D 插值时缺乏性能而苦苦挣扎。

目标是在表 z(x,y) 中找到 4 个值 (z00,z01,z11,z10),对应于每个输入 x 和 y 的两个最接近的值,(x0 < x < x1) 和 ( y0 < y < y1)。

例如,以下查找:

是的 1 2 3
4 20 23 29
6 35 37 43
8 47 50 55

由以下数组表示:

此外,与数组的定义一起,结构提供以下数据以实现更有效的查找:

该算法最耗时的部分是找到对应于输入 x 和 y 之前和之后值的交集的索引。

我目前的方法是按如下方式计算它们:

鉴于 x0 和 y0 的索引倍数为:

那么 x0,x1,y0 和 y1 是:

查找 z(x,y) 中的 4 个必要值是:

然后将二维插值作为沿 y0 和 y1 的两个 x 插值和一个 y 插值执行:

关于如何改进这一点的任何建议?

0 投票
0 回答
74 浏览

math - 是否有一个方程可以插入钟形曲线?

基本上我需要一个类似于双线性插值但不完全相同的函数。在双线性插值中,每个角都有权重,我需要一个公式,其中权重随着接近中心而增加,但随着到达盒子的末端而减少。我附上了图片作为示例,图 1 上的黑点代表双线性插值的结果 P,图 2 是我试图重新创建的那种效果

提前感谢您的帮助

加权到 q22 的双线性插值

预期效果示例

0 投票
0 回答
42 浏览

python - 没有 Scipy 的双变量插值

我正在尝试使用 Autograd 将尊重与矩阵区分开来(这无关紧要),但首先我需要结果(函数的值),为此我需要插值这个矩阵以便能够知道每个点中的值我想。

问题是 Autograd 有一些限制,不支持 scipy 的某些功能,“插值”就是其中之一。

我正在寻找一个可以应用双变量(2D)插值(线性就足够了)的函数,或者如果不可能的话,我会很感激一些关于我自己编程的建议。

谢谢

0 投票
0 回答
113 浏览

go - 整数双线性插值优化

我的代码受到双线性插值的严重限制,因此我编写了一个ScaleBlerpI不使用浮点数学的版本 ( )。这已经快了1.5 1.85 倍,但我想知道如何让它更快。

任何提示表示赞赏。

分析向我表明,大部分时间都浪费在了blerpI,src.GetComponentdst.SetComponent

编辑 1

更换

整数版本现在快 1.85 倍。

编辑 2

基准:

0 投票
0 回答
50 浏览

interpolation - 如何在图像上实现双线性插值?

我想在图像上实现双线性插值。该算法工作正常。但...

假设我有一个图像(2x2 像素)并且想将它放大 x3 倍所以它应该是一个 6x6 像素的图像。为简单起见,我们只看第一行:

x x -> x 0 x 0 x (x = given pixel, 0 = pixel we need to guess)

但在右侧,它只是一个 5x5 像素的图像。那么我应该把最后一个像素放在哪里?在最后一个像素之后?像那样?

x 0 x 0 x 0

但是现在我不能用双线性插值计算最后一个像素,因为我右边没有给定值,只有左边一个!

我对算法的理解错了吗?或者这是一个真正的问题?

0 投票
1 回答
161 浏览

opencv - 来自维基百科的双线性插值

我已经尝试阅读维基百科页面https://en.wikipedia.org/wiki/Bilinear_interpolation上的双线性插值,并且我已经实现了其中一种算法,我想知道我是否做对了。

这是我从页面实现的算法: 单位平方的双线性插值

这是我试图在代码中实现的:

那是如何实现的?