1

2D配列のリサンプリングアルゴリズムを実装しようとしています(グレースケール画像または浮動小数点値の2D配列である可能性があります)。

この特定の操作に含まれる手順は次のとおりです。

  1. 2D 配列が与えられた場合、まず何らかのダウンサンプリング方法 (できれば前のアンチエイリアシング フィルタリングを使用) を使用して、8x8 または 16x16 のサイズにダウンサンプリングします。

  2. これに関するいくつかの数値操作。

  3. 次に、バイリニア補間を実行して元のサイズにアップサンプリングします。

プロトタイプとして、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 コードを参照するための任意のポインター。

また、バイリニア法を使用したアンチエイリアシング フィルタとダウンサンプリング法に関するいくつかのポインタを取得することも検討しています。

4

1 に答える 1

1

あなたが探しているものは、NetPBM スイートに含まれていると思います。具体的には、アップサンプリングとダウンサンプリングの両方を処理し、両方向に複数の可能なフィルタリングスキームを使用するpamscaleです。コードは適切に記述されており、自己完結型です。

于 2011-06-30T11:36:47.003 に答える