假设我必须使用双线性插值来重新缩放图像。我或多或少了解在整数比例因子的情况下放大是如何工作的。

但是如何使用非整数比例,特别是当您需要对图像进行下采样时呢?

#1 楼

说明
对于非线性标度,您可以为每个像素(或使用的任何单位)应用不同的权重。您可以在两个方向上使用朝着最近像素的欧几里得距离来确定权重。例如,在下面的图像中,红色图像是降采样的图像(3x3),而黑色图像是原始图像(4x4)。点表示样本点(像素的中心)。
通过将每个像素坐标视为一组介于0和1(含)之间的两个值(x和y),可以对齐两个图像。像素不应被视为正方形,因此(将两个图像对齐时)应将每个像素视为一个点而不是正方形。

在上图中,四个角都将带有例如,原始图像四个角的权重。中间的点将根据四个相邻点之间的差异而具有不同的权重。
使用数字:
这是在较大图像中进行采样的假设区域(与上面的图像无关)。原始像素之间的距离从0标准化为1,以简化数学运算。
黑点代表原始图像的采样点(像素)。较大的红点表示降采样图像的采样点。与其他三个周围的点相比,左上角的红点更靠近左上角的黑点,因此像素将具有更大的权重来确定下采样像素的颜色。

距以下位置的水平距离:

右侧2个原始(绿色)像素= 0.1像素
左侧2个原始(绿色)像素= 0.9像素

距以下垂直距离:

前2个原始(绿色)像素= 0.1像素
后2个原始(绿色)像素= 0.9像素

最终像素的重量:
$$ weight (0,0)=(1.0-0.1)(1.0-0.1)= 0.81 $$
$$ weight(0,1)=(1.0-0.1)(1.0-0.9)= 0.09 $$
$$ weight(1,0)=(1.0-0.9)(1.0-0.1)= 0.09 $$
$$ weight(1,1)=(1.0-0.9)(1.0-0.9)= 0.01 $$
减去1的水平和垂直距离(因为更近的像素应承担更大的权重)。在此示例中,比例系数在每个方向上均为0.75。
按比例缩小与按比例缩小
按与按比例缩小相同的过程按比例放大。通过将原始图像和新图像都标准化为(0,0)和(1,1)之间,您可以使用相同的过程进行处理。作为练习,在第一个图中,如果红色点来自原始图像,黑色点来自放大图像,则应该能够看到该过程是相同的。

评论


$ \ begingroup $
@justanothercoder一个好的答案。它无助于消除像素是正方形的神话。您正在处理点样本(不是正方形)。实际上,重采样是由两个截然不同的阶段组成的,这两个阶段变成一个阶段,使数据字段连续,然后对所述连续函数进行采样。
$ \ endgroup $
– joojaa
16 Sep 19 '14:57