【问题标题】:2d grid interpolation二维网格插值
【发布时间】:2011-10-17 16:09:27
【问题描述】:

我的任务是将 NxM 的二维数组插入到 AxB,其中 A > N 和 B > M。它的重点是构建一个简单的颜色编码的数组图像(热图)。

我是否理解正确,例如,一个 3x3 数组(所有已知值)

A B C
D E F
G H I

应该以这种方式插值,比如说,6x6

A x B x x C
x x x x x x
D x E x x F
x x x x x x
x x x x x x
G x H x x I

x 表示未知但插值的值,对吗?

这可以在两个嵌套的 for 循环中完成吗?我找到了bilinear interpolation formula,但在将其适应结果数组循环的 (i, j) 时遇到了一些麻烦。有什么建议吗?提前致谢。

【问题讨论】:

标签: grid 2d interpolation


【解决方案1】:

您可以使用 .NET、Qt 或 SDL 之类的库来执行此操作,这是一项常见的应用程序任务。

如果您想自己实现它,请阅读Bilinear filtering 而不是双线性插值。 “插值”通常意味着您只在两个值之间进行插值 - 一旦有了图像,它就被称为过滤。

考虑更好看的过滤器,例如双三次。

【讨论】:

  • 获得类似upload.wikimedia.org/wikipedia/commons/c/c6/Bilininterp.png 的东西是正确的方法吗?我的数组中的值还不是实际颜色有关系吗?
  • 是的,您的示例图片完全是双线性过滤,但它仅显示过滤在源数据的 2x2 子数组中。如果你对每个 2x2 子数组做同样的事情,你就完成了。
  • 如果我的数组中的值不是实际颜色,您可以先将它们映射到颜色,然后插入颜色。或者您可以插值,然后将插值映射到颜色。两者会产生不同的效果(示例图片使用的是后一种方法,这可能更适合热图)。此外,您的示例图片具有我假设您不想要的分色效果。
猜你喜欢
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 2022-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多