Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的图像/二维阵列重采样_C_Interpolation_Downsampling - Fatal编程技术网

C语言中的图像/二维阵列重采样

C语言中的图像/二维阵列重采样,c,interpolation,downsampling,C,Interpolation,Downsampling,我希望实现一个二维数组的重采样算法(可以是灰度图像或一些浮点值的二维数组) 此特定操作涉及的步骤包括: 给定一个2D阵列,我首先使用一些下采样方法(最好是先进行抗锯齿滤波)将其下采样到8x8或16x16的大小 在这上面做了一些数值运算 然后通过双线性插值将其采样恢复到原始大小 作为一个原型,我用八度音阶对它进行了编码,如下所示。它给出了不错的结果。我希望得到一些关于C实现的参考 fid = fopen("anti_vig_gain_map.txt","r"); fid2 = fopen("ds_

我希望实现一个二维数组的重采样算法(可以是灰度图像或一些浮点值的二维数组)

此特定操作涉及的步骤包括:

  • 给定一个2D阵列,我首先使用一些下采样方法(最好是先进行抗锯齿滤波)将其下采样到8x8或16x16的大小

  • 在这上面做了一些数值运算

  • 然后通过双线性插值将其采样恢复到原始大小

  • 作为一个原型,我用八度音阶对它进行了编码,如下所示。它给出了不错的结果。我希望得到一些关于C实现的参考

    fid = fopen("anti_vig_gain_map.txt","r");
    fid2 = fopen("ds_us_anti_vig_gain_map.txt","w");
    
    for i=1:1968
        for j=1:2592
           map(i,j) = fscanf(fid,'%f\n',1);
    
        end
    end
    
    %downsample
    
    ds_map = imresize(map,[8 8],'linear');
    
    %% some processing on ds_map
    
    %upsample
    
    us_map = imresize(ds_map,[1968 2592],'linear');
    
    我试图在imresize.m中查看代码,但过了一段时间后,代码变得复杂,无法从中提取C代码

    任何指向参考C代码的指针,用于执行上采样的双线性插值


    还希望获得一些使用双线性方法的抗锯齿过滤器和下采样方法的指针。

    我认为您要查找的内容包含在NetPBM套件中。具体地说,它使用多个可能的双向过滤方案处理向上和向下采样。代码编写得很好,而且是自包含的。

    我认为您要查找的内容包含在NetPBM套件中。具体地说,它使用多个可能的双向过滤方案处理向上和向下采样。代码写得很好,而且是独立的。

    我读过该代码,但它-a)很难理解,因此需要提取/修改。b) 没有办法测试它。我读了那段代码,但它很难理解,因此需要提取/修改。b) 没有办法测试它。