经典指数          
原因
1837
浏览数
0
收藏数
 

请写一个效率尽可能高的程序,计算图像缩放中一维插值的位置。 图示是6(5+1)个像素变成4(3+1)个像素的情形,要求两端的像素位置完全重合,显然,Y0与X0重合,Y1在X1右侧2/3像素处,Y2在X3右侧1/3像素处,Y3与X5重合,即: Y0,X0,0.00000000 Y1,X1,0.66666667 Y2,X3,0.33333333 Y3,X5,0.00000000 请写一个函数,处理把N+1个像素缩小或放大成M+1个像素的问题,其中:N和M的期望取值范围是[1000,2000]。按上述风格打印如下: Y0,X0,0.00000000 Y1,X1,0.???????? Y3,X5,0.00000000

     举报   纠错  
 
切换
1 个答案

void Interpolation(int N, int M)

{

    int i;

    printf("Y0, X0, %.8lf\n", 0.0);

    

    double step = 1.0 * N / M;

    for (i = 1; i <= M; i++)

    {

        double a = i * step;

        double b = (a - int(a));

        printf("Y%d, X%d, %.8lf\n", i, (int)a, b);

    }

}

// 最基本的方法,不过感觉效率比较低,望大牛赐教!

 
切换
撰写答案