如果在数字图像处理中,我使用双线性插值进行图像缩放,如果缩放因子是1.5x,那么我如何在物理矩阵结构中表示1.5列?
发布于 2018-02-09 05:39:30
这是插值如何工作的快速草图:
假设你要从一个大小为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个样本。
如果一维插值是一个单独的函数,那么这个过程就很容易实现。许多人会将双线性插值直接实现为2D操作,计算每个输出值的2D坐标。但是将其实现为可分离的转换有很多好处。例如,它使得将插值方法更改为立方、Lanczos甚至b样条线变得很容易,因为它们都是1D的。也很容易将该过程从2D图像扩展到3D图像。
https://stackoverflow.com/questions/48694239
复制