1、单线性插值
化简得:
重要公式
将y视为像素值的函数;
2、双线性插值
问题:求P点的像素值?
根据单线性插值公式:
1、得到R1和R2点的像素值:
2、然后通过R1和R2线性插值得到P点的像素值:
所以,一共使用了三次单线性插值得到,最终的像素值。
另外,其中由于相邻像素点差1,所以y2 - y1 = 1 ,和x2-x1 = 1,所以分母就为1.
最终得到的计算公式为:
3、最近邻法
使用下面公式,寻找最近一个像素值
其中:
存在问题:右偏移
原公式是右偏移的,新公式中心对其了。
因为在原公式中是右偏移的,所以使用中心点重合来消除一下。
下面是优化公式:
4、双线性插值简单实现
通过最邻近找到P点,然后需要找到出四个相邻像素点。
通过floor函数找到下限,floor +1 找到上限,但是要防止超过图像的像素坐标值
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
def Bilinear(dst,des_w,des_h,src_w,src_h):
for c in</