ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

関数 imresize を使用したイメージのサイズ変更

この例では、関数 imresize を使用してイメージのサイズを変更する方法を説明します。

倍率の値の指定

イメージをワークスペースに読み取ります。

I = imread('circuit.tif');

関数 imresize を使用してイメージをサイズ変更します。この例では、倍率係数を指定します。イメージを拡大するには、1 より大きい倍率係数を指定します。

J = imresize(I,1.25);

元のイメージの横に拡大したバージョンを表示します。

figure
imshowpair(I,J,'montage')
axis off

出力イメージのサイズの指定

次に、倍率の値ではなく、出力イメージに必要なサイズを指定して再びイメージをサイズ変更します。出力イメージの行数と列数を含むベクトルを imresize に渡します。指定したサイズが入力イメージと同じ縦横比にならない場合は、出力イメージに歪みが生じます。ベクトルの 1 つの要素を NaN と指定すると、imresize はその次元の値を計算して、イメージの縦横比を維持します。多重解像度の処理に必要なサイズ変更を実行するには、impyramid を使用します。

K = imresize(I,[100 150]);
figure, imshow(K)

内挿法の指定

次に、内挿法を指定して再びイメージをサイズ変更します。イメージを拡大する場合、出力イメージに含まれるピクセルが元のイメージより多くなります。imresize は内挿を使用して、ピクセル位置の近傍にあるピクセルの集合の加重平均を計算し、これらのピクセルの値を決定します。imresize は、各ピクセルの点からの距離に基づいて重み付けを行います。既定の設定では、imresize は双三次内挿を使用しますが、他の内挿法や内挿カーネルを指定することもできます。詳細なリストは、imresize のリファレンス ページを参照してください。また、独自のカスタム内挿カーネルを指定することもできます。この例では、双一次内挿を使用しています。

L = imresize(I,1.5,'bilinear');
figure, imshow(L)

イメージ縮小時のエイリアシングの回避

次に、イメージの縮小で再びイメージをサイズ変更します。イメージのサイズを小さくすると、出力イメージのピクセル数が減るため、元のピクセルの一部が失われます。これはエイリアシングなどのアーティファクトをもたらす可能性があります。サイズの減少によるエイリアシングは通常、出力イメージで階段状のパターン (特に高コントラストのイメージで) またはモアレ (波紋効果) のパターンとなります。既定の設定では、imresize は最近傍を除くすべての内挿タイプの出力イメージにアンチエイリアシングを使用して、出力イメージへのエイリアシングの影響を制限します。アンチエイリアシングをオフにするには、パラメーター 'Antialiasing' を指定して値を false に設定します。イメージのサイズを減らすと常に情報が失われるため、アンチエイリアシングをオンにしても、サイズ変更がアーティファクトをもたらす可能性があります。

M = imresize(I,.75,'Antialiasing',false);
figure, imshow(M)