问题标签 [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 投票
8 回答
23829 浏览

math - 逆双线性插值?

我有四个 2d 点,p0 = (x0,y0), p1 = (x1,y1) 等,它们形成一个四边形。就我而言,四边形不是矩形,但至少应该是凸的。

我正在使用双线性插值。S 和 T 在 [0..1] 范围内,插值点由下式给出:

这是问题所在。我有一个二维点 p,我知道它在四边形内。我想找到在使用双线性插值时会给我那个点的 s,t。

是否有一个简单的公式来反转双线性插值?


感谢您的解决方案。我将 Naaff 解决方案的实现发布为 wiki。

0 投票
1 回答
2270 浏览

matlab - matlab中二维矩阵的双线性和双三次插值

我正在尝试对存储在文本文件中的数据集应用双线性和双三次插值。这些文本文件位于一个文件夹中,名为output_00.text 到 output_23.text。每个文本文件由三列组成。第一个是纬度,第二个是经度,第三列是这个纬度和经度(地球上的位置)的温度值。

温度列包含-9999.000 作为非数字或 NaN 值。此 NaN 值出现在每个文件中的随机行中。

我想用双线性/双三次插值技术对这些 NaN 值进行插值。此代码将读取每个文本文件并使用双线性方法对其进行插值,并使用 method_00.text 保存它。

我的一个文本文件看起来像这样

在谷歌上,我发现了一个在图像或矩阵上进行双线性插值的工具。暂时可以根据我的要求修改此代码。但是如何?

. 这个工具的链接在这里http://www.mathworks.com/matlabcentral/fileexchange/43533-bilinear-interpolation-of-an-image-or-matrix

0 投票
0 回答
59 浏览

java - 在java中通过双线性插值方法缩放图像

我正在尝试读取图像,将其放大到 80*60,然后通过双线性插值方法将结果图像缩小 5 倍。但是我收到此错误:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 4800 。任何人都可以帮助我吗?

这就是我所做的:

0 投票
3 回答
1195 浏览

algorithm - 填充二维数组的空白

我有一个人口稀少的数组,如下所示。有没有一种算法可以用线性有意义的值填充所有空白?IE。从周围的原始值推导出来。

我看过双线性插值和双三次插值,但还有其他的吗?

例如,我希望 xxx 在 40 附近,而 yyy 在 50 附近。然而 zzz 可能具有更随机的值。但请注意:我想填充每个空白空间,而不仅仅是 xxx、yyy 和 zzz。并且能够对任何人口稀少的数组这样做。

这样的算法存在吗?

0 投票
1 回答
776 浏览

gpgpu - Delaunay三角剖分内整数坐标的双线性插值

我有一个由大约 100 万个三角形组成的平面 Delaunay 三角剖分。每个顶点都标有几个标量指标 [1],我希望在同一个规则网格上看到每个指标的快速、简单插值。作为参考,我的三角形的并集覆盖了大约 1000 万个具有(整数)坐标的网格单元。[2]

当我说简单时,我的意思是简单。双线性就好了!我的理解是,这(a)基本上是 GPU 为生而做的,(b)可能是无数家庭作业的主题。我自己是公共卫生领域的政府研究员,所以这不是我的功课。:-)

在我缓慢但正确的参考实现中,我可以在大约 10 分钟内计算出以下内容:

对于每个三角形 T:

  1. T的边界框内所有(整数)笛卡尔坐标的集合G;
  2. G中每个(x,y)的重心坐标(u,v,w);
  3. 拒绝不全为正的(u, v, w)——即在T内部;
  4. T 中每个剩余坐标的加权和 (u z_1 + v z_2 + w*z_3),其中 z_1、z_2 和 z_3 对于给定度量 [1] 是 T 顶点处的标量值。

我真的需要步骤 1-3 快速;第 4 步是微不足道的,但这是我的最终目标。理想情况下,解决方案将采用以下任一形式:

  • 一个经过适当许可(GPL 可以)的库,带有一个非常简单的 API;或者
  • 一个足够清楚的解释,很明显中级程序员如何用 Fortran、R、Python 或 C 对其进行编码。

此任务的经典表述是“TIN 到 DEM”地形建模作业。但现在似乎更需要相反的情况(?)

一些基本的清理,比如当一个点恰好落在由 2 个以上三角形共享的边或顶点上时删除重复项,也是可以的。

非常感谢您的时间和关注。下火车后,我将根据建议清理格式和编辑!

脚注:

[1] 海拔、温度和湿度。[2] 整数,即它们在 UTM 网格上的间距为 20x20m。所以只需按 20 缩放。

0 投票
1 回答
327 浏览

matlab - 如何进行自适应双线性插值?

我想实现本文给出的图像上采样的自适应双线性插值方法。但我被困在一个非常基本的问题上。

Matlab 中的imresize()通过对最近的 2x2 邻域中的像素进行加权平均来执行双线性插值

我想知道 Matlab 如何确定边界像素的这个 2x2 邻域?

我真正想知道的是如何确定附件中边界像素的邻域,因为每个边界在至少 1 个方向上没有邻域,例如,最上面的行不会有任何行来确定任何垂直上掩码,最左边的列将没有任何用于确定任何水平掩码的列,依此类推。

我给出了 Matlab 示例,以直观了解此类算法中的语言如何解决边界情况。

0 投票
1 回答
83 浏览

c++ - 双线性图像采样不可重现访问冲突

我有一个模板 2D 图像缓冲区类,可以与许多值类型一起使用。这些值存储为 的一维动态数组T,通过一种Row方法访问以获取指向正确行的指针。

该类的方法之一用于对图像中的值进行双线性采样。

该代码通常可以工作,但是我在生产中的这种方法中很少遇到访问冲突异常,我似乎无法重新创建,因为故障转储不包括传递给该方法的坐标。

这些是代码的相关部分:

clamp和的定义lerp是:

您是否看到任何明显的错误会导致任何非 NaN值x的访问冲突?y

您可以假设width,heightdata是有效且正确的(即,正尺寸 - 在这种特殊情况下 1280x720,data不是悬空指针)。

如果它很重要,那么在这种情况下T就是一个。float

这是不可重现的,并且通常 99.9% 的时间都可以正常工作,这让我觉得这可能是一个准确性问题,尽管我看不出它来自哪里。

或者,我可以使用哪些调试技术来更有效地分析故障转储?

0 投票
1 回答
299 浏览

c++ - C ++,双线性插值以修补放大的位图图像上的孔

为了将位图图像放大 3 倍,我实现了这段代码并发现了漏洞。我决定使用双线性插值,上面这些是修补最近像素的代码,其权重的计算方式与此代码类似。输出[j*hInfo.biWidth+i] = 图像[3/2*j*hInfo.biWidth + 3/1*i]。
逻辑很简单,所以我认为它会正常工作,我很确定,但是 Image 的结果看起来像我感觉的西瓜,请看一下代码。欢迎任何意见。谢谢阅读。

0 投票
1 回答
293 浏览

c++ - 通过像一维数组一样访问二维数组的双线性插值的概念

在二维数组中,有 bmp 文件的像素。它的大小是我缩放的宽度(3 * 65536)*高度(3 * 65536)。就像这样。

在 1 和 2 之间,当我放大原始二维阵列时,有 2 个孔。(乘以 3)

我使用像这样的一维数组访问方法。

数组[y* 宽度 + x]

现在我可以像这个解决方案一样修补这个洞。在双 for 循环中,在条件 (j%3==1)

在另一种情况下( j%3==2 )

这就是我知道我可以修补所谓的“双线性插值”的孔的方式。

在将这个逻辑实现到我的代码中之前,我想确定我所知道的。谢谢阅读。

0 投票
1 回答
4171 浏览

caffe - 如何理解caffe的双线性上采样

caffe'doc 说:

我不知道为什么要这样设置 kenrel_size、stride 和 pad?