图像插值算法急求高手帮忙解释!
下面的这个算法自己看的不是很懂,是图像配准算法中进行仿射变换之后的插值,不知道这个插值算法到底是怎么实现的,知道的人能帮忙解释解释吗?谢谢啦
* \说明:
* 该函数根据邻近位置的数值进行插值。
*此图象的大小为rectNewImg
*
unsigned char CImageMatch::CalSpline(unsigned char *pUnchCorr, double x, double y)
{
double ret=0, Cx, Cy;
double Temp;
for(int i=0;i <4;i++)
for(int j=0;j <4;j++)
{
Temp = pUnchCorr[i*4 + j];
if(fabs(y-i) <1)
Cy = 1-2*fabs(y-i)*fabs(y-i)+fabs(y-i)*fabs(y-i)*fabs(y-i);
if(fabs(y-i)>=1)
Cy = 4-8*fabs(y-i)+5*fabs(y-i)*fabs(y-i)-fabs(y-i)*fabs(y-i)*fabs(y-i);
if(fabs(x-j) <1)
Cx = 1-2*fabs(x-j)*fabs(x-j)+fabs(x-j)*fabs(x-j)*fabs(x-j);
if(fabs(x-j)>=1)
Cx = 4-8*fabs(x-j)+5*fabs(x-j)*fabs(x-j)-fabs(x-j)*fabs(x-j)*fabs(x-j);
ret += Temp*Cy*Cx;
}
if(ret <0)
ret=0;
if(ret>255)
ret=255;
return (unsigned char)ret;
}