Image 当将原始图像放大到n倍(其中n不是整数)时,如何在调整图像大小时使用双线性插值
我最近学习了双线性插值,根据维基上的描述,我觉得双线性插值只能用于整数倍放大,例如,给定4x4分辨率的图像,通过双线性插值,它只能放大到8x8、12x12、16x16。。。等等,但不能放大到9x9,13x13。。。就因为像9或13这样的数字不能被4除,对吗?如果不正确,如何通过双线性插值将其放大到n倍,其中n不是整数?不,这是不正确的您可以从任何正分辨率调整到任何其他分辨率。因此,假设源图像是Image 当将原始图像放大到n倍(其中n不是整数)时,如何在调整图像大小时使用双线性插值,image,image-processing,bilinear-interpolation,Image,Image Processing,Bilinear Interpolation,我最近学习了双线性插值,根据维基上的描述,我觉得双线性插值只能用于整数倍放大,例如,给定4x4分辨率的图像,通过双线性插值,它只能放大到8x8、12x12、16x16。。。等等,但不能放大到9x9,13x13。。。就因为像9或13这样的数字不能被4除,对吗?如果不正确,如何通过双线性插值将其放大到n倍,其中n不是整数?不,这是不正确的您可以从任何正分辨率调整到任何其他分辨率。因此,假设源图像是xs0,ys0,目标图像是xs1,ys1分辨率 处理目标图像的所有像素 x0 = x1*(xs0-1)/
xs0,ys0
,目标图像是xs1,ys1
分辨率
x0 = x1*(xs0-1)/(xs1-1)
y0 = y1*(ys0-1)/(ys1-1)
通过x1,y1
覆盖xs1,ys1
x0 = x1*(xs0-1)/(xs1-1)
y0 = y1*(ys0-1)/(ys1-1)
x0,y0的整数部分指向起点,小数部分是插值参数tx,ty
。。。因此,在源(x0,y0),(x0+1,y0),(x0,y0+1),(x0+1,y0+1)
之间插入像素,并将结果存储在目标图像的(x1,y1)
。以不同方式处理边缘像素(x0==xs0-1,y0==ys0-1
)以避免访问冲突
不,那是不对的您可以从任何正分辨率调整到任何其他分辨率。因此,假设源图像是
xs0,ys0
,目标图像是xs1,ys1
分辨率
x0 = x1*(xs0-1)/(xs1-1)
y0 = y1*(ys0-1)/(ys1-1)
通过x1,y1
覆盖xs1,ys1
x0 = x1*(xs0-1)/(xs1-1)
y0 = y1*(ys0-1)/(ys1-1)
x0,y0的整数部分指向起点,小数部分是插值参数tx,ty
。。。因此,在源(x0,y0),(x0+1,y0),(x0,y0+1),(x0+1,y0+1)
之间插入像素,并将结果存储在目标图像的(x1,y1)
。以不同方式处理边缘像素(x0==xs0-1,y0==ys0-1
)以避免访问冲突