gpt4 book ai didi

c - C中的图像/二维数组重采样

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:29 24 4
gpt4 key购买 nike

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

此特定操作涉及的步骤是:

  1. 给定一个二维数组,我首先使用某种下采样方法(最好使用前面的抗锯齿过滤)将其下采样到 8x8 或 16x16 的大小。

  2. 对此进行一些数值运算。

  3. 然后通过双线性插值将其上采样回其原始大小。

作为原型(prototype),我在 Octave 中如下所示对其进行了编码。它给出了不错的结果。我希望获得有关 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 套件中。具体来说,pamscale它通过两个方向的多种可能的过滤方案处理向上和向下采样。代码既写得很好又是独立的。

关于c - C中的图像/二维数组重采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6517935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com