作者:天狼飞虎神印 | 来源:互联网 | 2024-10-11 18:03
现有300×300300\times300大小的图像I0,希望将它resize到400×400400\times400I1。那么对于目标图像I1中的每个像素点来说,应该从原始图像
现有
300×300
大小的图像I0,希望将它resize到
400×400
I1。
那么对于目标图像I1中的每个像素点来说,应该从原始图像I0中能找到对应的点来进行赋值。以下公式给出了这种对应关系:
srcX=dstX×(srcWidth/dstWidth)(1)
,
srcY=dstY×(srcHeight/dstHeight)(2)
比方说:目标图像中(337,263)像素点的值的计算
寻找I0中的对应点,利用(1)(2)公式可得(252.75,197.25),可是这个点坐标是小数,在原始图像中并不存在。
于是就需要通过(252,197), (252,198), (253,197), (253,198) 来估计 (252.75,197.25)的点。
而双线性插值就是如图1所示,根据f(0,0), f(1,0), f(0,1), f(1,1)的值线性地估计目标点的值,利用以下的公式。
不同之处就是这里四个点就是(252,197), (252,198), (253,197), (253,198)
接下去解释一下这个公式
首先是利用f(0,0)和f(0,1)计算f(0,y)(线性插值),f(1,0)和f(1,1)计算f(1,y),然后利用f(0,y) 和f(1,y)计算f(x,y),所以双线性插值就是在两个方向上都用了一次线性插值。
以上介绍的是图像的放大,缩小也是同理。