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