双立方插值原理分析


双立方插值 : 其核心思想是利用三次多项式S(x)求逼近理论上最佳插值函数sin(x)/x,待求像素(x, y)的灰度值由其周围16个灰度值加权内插得到

公式推导过程
双立方插值原理分析-LMLPHP
上述图片中像素点的说明:
红色的点为16个真实存在的像素点
P 为双立方插值待插值点

用opencv进行图像处理时,根据下面公式来计算目标像素值在源图像中所处的位置:
(src:原图像 dst:目的图像)

srcX =dstX * ( srcWidth / dstWidth)
srcY =dstY * ( srcHeight / dstHeight)

以原图尺寸3x3为例,来计算扩展后5*5图像的像素值:
双立方插值原理分析-LMLPHP
目标像素(1,1)所对应的原像素的像素值为:
srcX =1 * ( 3 / 5) = 0.6 ~ 1(四舍五入约等于1)
srcY =1 * ( 3 / 5) = 0.6 ~ 1(四舍五入约等于1)
目标像素(1,1)= 原图像(1,1),所以目标像素(1,1)位置所对应的像素值为1

目标像素(1,5)所对应的原像素的像素值为:
srcX =1 * ( 3 / 5) = 0.6 ~ 1(四舍五入约等于1)
srcY =5 * ( 3 / 5) = 3
目标像素(1,5)= 原图像(1,3),所以目标像素(1,5)位置所对应的像素值为1

从而算出5 * 5整幅图像的所对应的像素值

11-16 08:16