0

matlab を使用して画像をサブサンプリングしています。しかし、サブサンプリングされた画像を元のサイズにリセットするタスクがあります。私は最近接近似と正常に動作している隣接するピクセルを平均化してそれを行いました.これを行うための他のアルゴリズムはありますか?

前もって感謝します。

4

3 に答える 3

3

imresize組み込み関数を使用しないと主張する場合は、 を使用interp2して画像を再スケーリングできます。最初に倍率を定義しますf。次にinterp2、次のように使用できます。

% Toy Data
I = im2double( imread( 'bag.png' ) );

% Set Scaling Factor
f = 1/5;

% Resize Image
D = interp2( I, linspace( 1, size(I,2), size(I,2) * f ), linspace( 1, size(I,1), size(I,1) * f )' );

% Plot Image
figure; imshow( I );
figure; imshow( D );

このコードが何をするかを理解するには、まず、この行が 内のサブディビジョンの数を見つけることを理解してlinspaceください。

size(I,2) * f 

を作成したら、2 番目の引数に列を、3 番目の引数に行をlinspace使用できます。interp2画像は double でなければならないため、im2double.

interp2@rayryeng が言ったように、どちらも使用したくない場合は、組み込み関数を使用せずに使用する方法を参照してください

于 2015-04-21T08:32:29.077 に答える
1

ええ、少なくとも2つの方法がまだあります:

  1. ピクセル領域の再サンプリング
  2. バイキュービック補間
于 2015-04-21T08:23:15.047 に答える
1

あなたが望むのは、基本的な画像のサイズ変更が正しいですか? Mathworks からの説明で利用できるアルゴリズムがいくつかあります。

于 2015-04-21T07:37:22.757 に答える