ドキュメンテーション

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

imresize

イメージのサイズ変更

構文

B = imresize(A,scale)
B = imresize(A,outputSize)
[Y,newmap] = imresize(X,map,___)
___ = imresize(___,method)
___ = imresize(___,Name,Value,...)
gpuarrayB = imresize(gpuarrayA,scale)

説明

B = imresize(A,scale) は、A のサイズの scale 倍のイメージ B を出力します。入力イメージ A は、グレースケール イメージ、RGB イメージ、バイナリ イメージのいずれでも構いません。scale が 0 から 1.0 までの場合、BA より小さくなります。scale が 1.0 より大きい場合、BA より大きくなります。既定の設定では、imresize は双三次内挿を使用します。

B = imresize(A,outputSize)outputSize ([numrows numcols] の形式の 2 要素ベクトル) で指定された行数と列数をもつイメージ B を返します。

[Y,newmap] = imresize(X,map,___) はインデックス付きイメージ X をサイズ変更します。ここで、map はイメージに関連付けられたカラーマップです。既定の設定では、imresize は、サイズ変更されたイメージとともに最適化された新しいカラーマップ (newmap) を返します。元のカラーマップと同じカラーマップを出力する場合は、'Colormap' パラメーターを使用します。

___ = imresize(___,method) は使用する内挿法を指定します。

___ = imresize(___,Name,Value,...) 上記の構文とパラメーターと値の組み合わせを指定して、サイズ変更操作のさまざまな特性を指定できます。

gpuarrayB = imresize(gpuarrayA,scale) は GPU でサイズ変更処理を実行します。入力イメージと出力イメージは gpuArray です。gpuArray を使用した場合、imresize は 3 次内挿のみをサポートし、常にアンチエイリアス処理を実行します。三次内挿の場合、出力イメージは、いくつかの値が入力イメージ内のピクセル値の範囲のわずかながら外側にある可能性があります。この構文では Parallel Computing Toolbox™ が必要です。

コード生成 サポート: あり。

MATLAB Function ブロック サポート: あり。

すべて折りたたむ

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

I = imread('rice.png');

スケール係数を指定し、既定の内挿法およびアンチエイリアス処理を使用してイメージをサイズ変更します。

J = imresize(I, 0.5);

元のイメージとサイズ変更されたイメージを表示します。

figure
imshow(I)
title('Original Image')
figure
imshow(J)
title('Resized Image')

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

I = im2double(gpuArray(imread('rice.png')));

イメージのサイズを変更する処理を GPU で実行します。

J = imresize(I, 0.5);

元のイメージとサイズ変更されたイメージを表示します。

figure
imshow(I)
title('Original')
figure
imshow(J)
title('Resized Image')

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

I = imread('rice.png');

スケール係数と内挿法を指定してイメージをサイズ変更します。

J = imresize(I, 0.5, 'nearest');

元のイメージとサイズ変更されたイメージを表示します。

figure
imshow(I)
title('Original Image')
figure
imshow(J)
title('Resized Image Using Nearest-Neighbor')

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

[X, map] = imread('trees.tif');

スケール係数を指定してイメージをサイズ変更します。既定の設定では、imresize は、サイズ変更されたインデックス付きイメージとともに最適化されたカラーマップを返します。

[Y, newmap] = imresize(X, map, 0.5);

元のイメージとサイズ変更されたイメージを表示します。

figure
imshow(X,map)
title('Original Image')
figure
imshow(Y,newmap)
title('Resized Image')

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

RGB = imread('peppers.png');

出力イメージを 64 行にするように指定してイメージをサイズ変更します。縦横比を維持するのに必要な列の数を、imresize で計算します。

RGB2 = imresize(RGB, [64 NaN]);

元のイメージとサイズ変更されたイメージを表示します。

figure
imshow(RGB)
title('Original Image')
figure
imshow(RGB2)
title('Resized Image')

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

RGB = gpuArray(im2single(imread('peppers.png')));

イメージのサイズを変更する処理を GPU で実行します。

RGB2 = imresize(RGB, 0.5);

元のイメージとサイズ変更されたイメージを表示します。

figure
imshow(RGB)
title('Original')
figure
imshow(RGB2)
title('Resized Image')

入力引数

すべて折りたたむ

サイズを変更するイメージ。実数、非スパースの数値配列として指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

サイズ変更係数。実数の数値スカラーとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力イメージの行と列の次元。[numrows numcols] の形式の 2 要素ベクトルとして指定します。numrows または numcolsNaN にすることができ、その場合、imresize は、イメージの縦横比を保つように自動的に行数または列数を計算します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

サイズを変更するインデックス付きイメージ。実数、非スパースの数値配列として指定します。

例: [X2, newmap] = imresize(X,map,0.75);

データ型: double | uint8 | uint16

インデックス付きイメージと関連付けられたカラーマップ。m 行 3 列の数値配列として指定します。

データ型: double

内挿法。次の表に示される一般的なメソッドまたは名前付き内挿カーネルを識別する文字ベクトルとして指定します。カスタム内挿カーネルを指定する {f,w} の形式の 2 要素セル配列をメソッドにすることもできます。このセル配列で、f はカスタム内挿カーネルの関数ハンドル、w はカスタム カーネルの幅です。f(x)-w/2 <= x < w/2 の区間外はゼロでなければなりません。関数ハンドル f は、スカラーまたはベクトル入力で呼び出すことができます。

メソッド説明

'nearest'

最近傍内挿。出力ピクセル値として、対象となる位置の中に存在している値を割り当てます。周りの他のピクセルは、考慮に入れません。

'bilinear'

双一次内挿。出力ピクセル値は、最近傍の 2 行 2 列のピクセルの重み付き平均です。

'bicubic'

双三次内挿 (既定の設定)。出力ピクセル値は、最近傍の 4 行 4 列のピクセルの重み付き平均です。

内挿カーネル説明
'box'箱型のカーネル
'triangle'三角のカーネル ('bilinear' と等価)
'cubic'3 次カーネル ('bicubic' と等価)
'lanczos2'Lanczos-2 カーネル
'lanczos3'Lanczos-3 カーネル

データ型: char | cell

GPU でサイズを変更するイメージ。gpuArray として指定します。

例: gpuarrayB = imresize(gpuarrayA,0.5);

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: I2 = imresize(I,0.5,'Antialiasing',false);

すべて折りたたむ

イメージ縮小時のアンチエイリアシングの実行。論理ブール値 true または false として指定します。既定値は内挿法に依存します。メソッドが最近傍 ('nearest') の場合、既定値は false です。その他すべての内挿法の場合、既定値は true です。

データ型: logical

最適化されたカラーマップの出力。'optimized' または 'original’ のいずれかに指定します (インデックス付きイメージのみ)。'original' に設定されている場合、出力されるカラーマップ (newmap) は入力されたカラーマップ (map) と同じになります。'optimized' に設定された場合、imresize は新たに最適化されたカラーマップを出力します。

データ型: char

カラー ディザリングの実行。論理ブール値 true または false として指定します(インデックス付きイメージのみ)。

データ型: logical

内挿法。文字ベクトルまたは 2 要素セル配列として指定します。詳細については、method を参照してください。

データ型: char | cell

出力イメージのサイズ。[numrows numcols] の形式の 2 要素ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

サイズ変更のスケール係数。正の値の数値スカラーまたは 2 要素ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

サイズ変更されたイメージ。入力イメージと同じクラスの実数の非スパース数値配列として返されます。

サイズ変更されたインデックス付きイメージ。入力イメージと同じクラスの実数の非スパース数値配列として返されます。

最適化されたカラーマップ。m 行 3 列の数値配列として返されます。

サイズ変更されたイメージ。gpuArray として返されます。

詳細

すべて折りたたむ

コード生成

この関数では MATLAB® Coder™ を使用した C コードの生成がサポートされています。詳細は、「画像処理のコード生成」を参照してください。

コード生成時には、以下の点に注意してください。

  • インデックス付き入力イメージはサポートされません。これには imresize(X,map,...) 構文、'Colormap’ パラメーター、'Dither' パラメーターなどが含まれます。

  • カスタム内挿カーネルはサポートされません。

  • すべてのパラメーターと値の組み合わせはコンパイル時の定数でなければなりません。

MATLAB Function ブロック

この関数は Simulink の MATLAB Function ブロックで使用できます。

この関数を MATLAB Function ブロックで使用する場合、以下に注意してください。

  • 入力引数 Scale および Method の値はコンパイル時の定数でなければなりません。

  • OutputSize パラメーターの値 numrows および numcols はコンパイル時の定数でなければなりません。

ヒント

  • 関数 imresize は Version 5.4 (R2007a) で変更されました。以前のバージョンの Image Processing Toolbox™ は、既定の設定では異なるアルゴリズムを使用していました。以前の実装と同じ結果を得る必要がある場合、関数 imresize_old を使用してください。

  • 双三次内挿およびユーザー指定の内挿カーネルの場合、出力イメージは、いくつかの値が入力イメージ内のピクセル値の範囲のわずかながら外側にある可能性があります。

R2006a より前に導入

この情報は役に立ちましたか?