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

image-processing - 如何通过每种颜色的分数贡献在n种颜色之间进行插值?

如何在 n 种颜色之间进行插值。

2色简单案例

首先考虑一个更简单的情况,我们想要找到 2 种颜色的中点。

解决方案是分别考虑的每个 R、G、B 之间的中点。

由于中点正好在两者之间,并且与插值存在线性关系,因此可以在 Color1 和 Color2 之间插值一个小数,例如 0.25,颜色应该更接近 Color1。

n种颜色的情况

我希望找到解决方案的情况是有 n 种颜色,其中每种颜色的分数权重总计高达 1.0。

(猜测,我猜每种颜色都可以被认为是 3 维空间中的一个点,并且权重描述了插值点与每个颜色点的相对距离)

颜色插值仅是线性 RGB。

在某些情况下,我猜可能有多个整数值可以解决问题,例如,如果有几种颜色具有相似的值。

我读到有双线性插值可能有助于解决这个问题。

通常颜色的数量不会超过 5 种,通常是 2、3 或 4 种颜色。

0 投票
1 回答
149 浏览

image-processing - 如何找到对已知颜色 C 有贡献的 n 种颜色的分数权重?

这与这个问题相关但不一样(点击进入)。然而,链接的问题需要在这个问题之前解决,或者至少要理解问题。这可以被认为是另一个的相反。

这个问题是,给定 RGB 中的 n 个颜色,例如

我们知道给定的颜色 C,找到每种颜色的分数权重,以便当这些颜色混合时,给定颜色的分数权重会导致已知颜色 C。分数权重在上面的链接问题中定义,它是一个值介于 0.0 和 1.0 之间,其中总权重等于 1.0。例如,Color1 可以是 0.2,Color2 可以是 0.2,Color3 可以是 0.6。

插值在 RGB 颜色空间中是线性的。

通常颜色的数量不会超过 5 种,通常是 2 或 3 或 4 种颜色。

请注意,很有可能无法将这些颜色混合以获得颜色 C,例如,如果我们有两种非常红色的颜色并且我想要颜色 C(即绿色),则无法混合两种红色以获得绿色. 所以在这种情况下,没有解决办法。

此外,在某些情况下,可能有多种方法可以混合颜色以制作颜色 C。

0 投票
1 回答
688 浏览

r - 绘制二维人口分布的热图(或类似图)

我想知道如何在这些位置(x 和 y)绘制人口比例(pop.prop)的图像,以便我可以清楚地看到人口分布?

数据如下图:

x是经度,y是纬度。

0 投票
0 回答
1282 浏览

c# - C# 数组列表生成双线性插值值

在开始之前,请接受我的歉意,我是初学者。

我想要的是一个带有数据的网格。只有我有一个包含 7 个点(x,y,值)的数组列表。我想在 5x5 的网格中执行此操作。只有我错过了很多价值观。我想借助插值函数生成缺失值。通过多维(或插值)(x,y)搜索以生成其他网格的值的算法。

网格示例:

我使用了该方法(来自 c# 书中的数值方法、算法和工具)并且它正在工作,但我不明白如何将我的值传递给函数并生成随机 5x5 缺失值,因为函数和方法不是t 书中解释。

什么是 zdata[,] 双二维数组?,这是来自点的值吗?xdate 和 ydata 是什么?

例如,我有一个包含 7 个点 (x,y,value)=> 0,0,18 等的数组。如何正确传递给此方法以生成缺失值?

这是整个功能:

谢谢

0 投票
2 回答
896 浏览

php - 我的双线性插值算法有什么问题?

我正在使用 PHP 来测试我的双线性算法。为了清晰起见,代码未优化。

下面是代码的作用:

  1. 将 2x2 图像的原始像素绘制到 10x10 目标图像。这些将留下空白像素。

注意:此处的图像已从 10x10 调整为 100x100,以便更好地查看。

调整大小

  1. 对像素行进行插值。

在此处输入图像描述

  1. 使用步骤 2 中的像素行从左到右、从上到下插入剩余像素:

在此处输入图像描述

但是,它与我在 Photoshop 中使用双线性重采样得到的结果不匹配:

在此处输入图像描述

完整源代码:

我错过了什么?

0 投票
1 回答
109 浏览

matlab - 如何为来自不同矩阵的各种条目中的每一个应用一个函数作为索引?

我正在 matlab 中编写一个函数,它模仿内置的“imwarp”函数(应用几何变换),而不使用任何类型的循环。当我必须为最终二维图像中的每个索引调用双线性插值函数时,我正处于最后一步。

我在这里有 3 个数组,'pts' 有同质化向量 (x,y,1),我对其进行插值,'row' 和 'cols' 分别具有 x 和 y 坐标,用于放置插值强度值的结果图像。

请在此处更正我的语法以正确执行此操作。提前致谢。

0 投票
1 回答
339 浏览

r - 使用“interp2 {pracma}”进行双线性插值时出错;二维插值有更好的方法吗?

我正在尝试在名为vol_coarse.

这是返回的错误消息:

错误:is.numeric(Z) 不是 TRUE

我读到?interp2

如何创建一个 8 x 3 的矩阵以便我可以使用interp2

还是有更好的方法来执行这种插值?

谢谢你。

0 投票
11 回答
5633 浏览

opencv - 反转实值索引网格

OpenCVremap()使用实值索引网格使用双线性插值从图像中采样值网格,并将样本网格作为新图像返回。

准确地说,让:

那么对于所有像素坐标 i, j,

其中圆括号表示法表示使用双线性插值来使用浮点值坐标和A(x, y)求解图像 A 的像素值。xy

我的问题是:给定一个索引网格XY我怎样才能生成一个“逆网格” X^-1Y^-1这样:

对于所有整数像素坐标i, j

FWIW,图像和索引图 X 和 Y 的形状相同。但是,索引映射 X 和 Y 没有先验结构。例如,它们不一定是仿射或刚性变换。它们甚至可能是不可逆的,例如,如果X, Y将多个像素映射A到 B 中相同的确切像素坐标。我正在寻找一种方法的想法,该方法将找到一个合理的逆映射(如果存在)。

该解决方案不必基于 OpenCV,因为我没有使用 OpenCV,而是另一个具有remap()实现的库。虽然欢迎任何建议,但我特别热衷于“数学上正确”的东西,即如果我的地图 M 是完全可逆的,那么该方法应该在机器精度的一些小范围内找到完美的逆。

0 投票
4 回答
3524 浏览

php - Select PHP's Image resizing algorithm

The function imagecopyresampled is useful to generate a thumbnail or resize images, while keeping aspect ratio:

How can I select the resizing algorithm used by PHP?
Note: as stated in this question, setting imagesetinterpolation($dst, IMG_BILINEAR_FIXED); or such things doesn't seem to work.


According to tests I did (in another language), "bilinear resizing" sometimes gives better result than bicubic, and sometimes it's the contrary (depends if it's downsizing or upsizing).


(source: dpchallenge.com)

0 投票
1 回答
1369 浏览

image - 将原始图像放大到n倍时如何在调整图像大小时使用双线性插值,其中n不是整数

最近学习了双线性插值,根据Wiki中的描述,感觉双线性插值只能用于整数倍放大,例如给定4x4分辨率的图像,通过双线性插值只能放大到8x8、12x12、16x16 ……等等,但是不能放大到9x9、13x13……就因为9、13这样的数字不能被4整除,对吗?如果不对,如何通过双线性插值将其放大到 n 倍,其中 n 不是整数?