matlab を使用して画像をサブサンプリングしています。しかし、サブサンプリングされた画像を元のサイズにリセットするタスクがあります。私は最近接近似と正常に動作している隣接するピクセルを平均化してそれを行いました.これを行うための他のアルゴリズムはありますか?
前もって感謝します。
matlab を使用して画像をサブサンプリングしています。しかし、サブサンプリングされた画像を元のサイズにリセットするタスクがあります。私は最近接近似と正常に動作している隣接するピクセルを平均化してそれを行いました.これを行うための他のアルゴリズムはありますか?
前もって感謝します。
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 が言ったように、どちらも使用したくない場合は、組み込み関数を使用せずに使用する方法を参照してください。
ええ、少なくとも2つの方法がまだあります:
あなたが望むのは、基本的な画像のサイズ変更が正しいですか? Mathworks からの説明で利用できるアルゴリズムがいくつかあります。