如果在数字图像处理中,我使用双线性插值进行图像缩放,如果缩放因子是1.5x,那么我如何在物理矩阵结构中表示第1.5列?
答案 0 :(得分:2)
这是插值如何工作的快速草图:
假设您从大小为NxN的图像变为大小为MxM的图像。
步骤1:创建大小为MxN的中间图像。第二维现在保持不变。我们仅沿第一维进行插值。
因此对于每个图像行,输入是N个值,我们生成M个值。假设输入值的坐标为0,1,2,3,... N-1。输出值的坐标为0,N / M,2 * N / M,...... N-1。这为您提供了小数坐标。
对于每个输出值,插入输入值。例如,第4输出值为3 * N / M.选择位置floor(3*N/M)
和ceil(3*N/M)
的输入值,并计算线性插值。
步骤2:创建大小为M * M的输出图像,并对第二维上的每一行重复上述过程,再次从N个样本增长到M个样本。
如果1D插值是一个单独的函数,则此过程非常容易实现。许多人将直接实现双线性插值作为2D操作,计算每个输出值的2D坐标。但将其作为可分离的转型实施有许多好处。例如,它可以很容易地将插值方法更改为三次,Lanczos甚至是b样条,因为它都是1D。将过程从2D图像扩展到3D图像也很容易。