1

我正在阅读一篇关于在图像合成中使用 lerp 函数的论文。究竟什么是 lerp,如果给定两张图像作为输入,您将如何使用一张合成图像?

4

3 回答 3

3

'lerp'ing 只是猜测中间值的一种方式。例如,如果一个值是 10,下一个是 8,“lerp”函数可能会返回 9。有几种方法可以进行估计 - 线性、三角等。最简单的线性,你只是在(distance from value 1 * value 1) + (distance from value 2 * value 2)哪里距离范围从 0 到 1。

在图像处理中,这是通过像素之间的颜色值来完成的。例如,如果您放大到 100%,您将使用 lerp 函数来确定在代表部分像素的区域中绘制什么。

我应该补充一下,我看过那篇文章,它引用了 Perlin 噪声。在这种类型的算法中,lerp'ing 函数被广泛用于计算存在数据的点之间的值,这些数据可以传递到 perlin 或分形算法中以生成该中间点的值。

于 2010-08-13T17:30:43.803 回答
1

究竟什么是 lerp 和

lerp(因子, a, b) = 因子*a + (1.0 - 因子)*b

其中因子在 [0, 1.0] 范围内

维基百科

如果给定两张图像作为输入,您将如何使用一张合成图像?

您需要两个大小相同的源图像(src1、src2)和目标图像(dst)。加上插值因子。

然后对每个像素做(RGB颜色):

dst[x][y].r = lerp(factor, src1[x][y].r, src2[x][y].r)
dst[x][y].g = lerp(factor, src1[x][y].g, src2[x][y].g)
dst[x][y].b = lerp(factor, src1[x][y].b, src2[x][y].b)
于 2010-08-13T17:44:57.000 回答
0

你会如何合成它?通过使用该功能。该函数将为您提供任何像素处给定输入的输出。但是,插值两个图像没有任何意义,您可能对使用插值来调整大小感兴趣。它也有一些有趣的特性。sinc 插值器相当于在频率空间中通过砖墙低通滤波器运行图像。

对于两个图像,您的函数将执行某种加法或平均,无论您感兴趣什么。如果您正在合成某些东西,插值相当于通过低通滤波器运行它。例如,如果以不同的速率对两张图像进行采样,并且您希望将一张放在另一张之上,则您需要在较高采样率的图像上插入较低的采样率。

于 2010-08-13T17:32:27.387 回答