我试图理解我所使用的2D图像的上采样和下采样究竟是如何使用双线性插值进行的。现在我知道双线性插值如何使用2x2邻域值来使用权重在这个2x2区域内插入数据点。但我不知道的是,下面会问。我的目标和具体问题是 -
1.首先,我有一个值的二维图像(大小MxN)。该图像的宽度(M)和高度(N)不固定,但会根据具体情况而变化。需要使用双线性插值将该2D图像下采样到尺寸为PxQ的网格(P和Q将被配置为输入参数),例如,让我们拿PxQ是8x8。并假设输入的2D阵列图像大小为200x100。即200列,100行。
现在,在使用这个200x100图像的双线性插值进行下采样时,我应该首先获得大小为100x50的下采样图像(使用双线性插值在两个维度中下采样2);那么一个50x25的图像(再次通过在两个维度上进行2次下采样),然后是25x12图像,然后是12x12(这次仅通过线性(非双线性!)插值进行下采样,仅沿着行,最后丢弃一些像素得到8x8 。 任何指向精确算法的指针或实现此目的的不同方法都是值得赞赏的。
2.上述问题引发了另一个问题 - 如何使用非整数比例因子的双线性插值进行下采样,例如:如何从说8x8图像阵列转到6x2图像,其中两个维度中的重采样/缩放因子不是整数。
3.然后,当我得到一个8x8大小的图像时,我需要通过双线性插值将其上采样到我用MxN开始的相同原始大小。如果我需要从8x8到20x20。如何在一行中的点之间进行插值,并通过某种方式插入整行。同样在非整数比例因子的情况下,如何进行上采样的双线性插值。确切的步骤。
最后我需要在C中实现它。
我尝试通过不同的例子来描述这些特定的问题,但没有清楚地了解在下采样和上采样时如何进行双线性插值。我所拥有的就是大量的纸张,在我的桌子上有点和交叉的图片,但仍然没有明确的解决方案!
任何详细的阅读材料,书籍赞赏。