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

imresize

イメージのサイズ変更

説明

J = imresize(I,scale) は、I のサイズの scale 倍のイメージ J を返します。入力イメージ I には、グレースケール イメージ、RGB イメージ、バイナリ イメージ、またはcategorical イメージを指定できます。I が 2 次元より大きい場合、imresize は最初の 2 次元のサイズのみを変更します。

オプションで、イメージのサイズの変更を GPU を使用して実行できます (Parallel Computing Toolbox™ が必要)。詳細については、拡張機能を参照してください。

J = imresize(I,[numrows numcols]) は、ベクトル [numrows numcols] で指定された行数と列数を持つイメージ J を返します。

[Y,newmap] = imresize(X,map,___) はカラーマップ map を使用してインデックス付きイメージ X のサイズを変更します。既定の設定では、imresize は、サイズ変更されたインデックス付きイメージと共に、最適化されたカラーマップ newmap を返します。元のカラーマップと同じカラーマップを返す場合は、名前と値のペアの引数 Colormap を使用します。

GPU では、この構文はサポートされていません。

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

___ = imresize(___,Name,Value) は、サイズ変更操作のさまざまな特性を制御する名前と値のペアの引数を使用します。

GPU では、この構文はサポートされていません。

すべて折りたたむ

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

I = imread('rice.png');

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

J = imresize(I, 0.5);

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

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

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')

入力引数

すべて折りたたむ

サイズを変更するイメージ。任意の次元の数値配列、logical 配列、categorical 配列として指定します。I が 2 次元より大きい場合、imresize は最初の 2 次元のサイズのみを変更します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | 論理値 | categorical

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

  • scale が 1 より小さい場合、出力イメージは入力イメージより小さくなります。

  • scale が 1 より大きい場合、出力イメージは入力イメージより大きくなります。

imresize はボリュームの各次元に倍率を適用します。各次元に異なるスケールを指定する方法の詳細は、'Scale'を参照してください。

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

出力イメージの行と列の次元。正の整数の 2 要素ベクトルとして指定します。numrows または numcols のいずれかに値 NaN を指定できます。この場合、imresize は、イメージの縦横比を保ちながら、その次元の行数または列数を自動的に計算します。

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

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

データ型: double | uint8 | uint16

インデックス付きイメージ X に関連付けられたカラーマップ。範囲 [0, 1] の値を持つ c 行 3 列の数値行列として指定します。各行は、カラーマップの単一色を構成する赤、緑、青の成分を指定する 3 要素の RGB 3 成分です。

データ型: double

内挿法またはカーネル。string スカラー、文字ベクトルまたは 2 要素 cell 配列として指定します。

method が string スカラーまたは文字ベクトルの場合、次の表に示される特定のメソッドまたは名前付き内挿カーネルを識別します。

メソッド説明

'nearest'

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

最近傍内挿は、categorical イメージでサポートされている唯一の内挿法であり、このタイプのイメージに対する既定のメソッドです。

'bilinear'

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

'bicubic'

双三次内挿。出力ピクセル値は、最近傍の 4 行 4 列のピクセルの重み付き平均です。双三次内挿は、数値イメージと論理イメージに対する既定のメソッドです。

メモ

双三次内挿は、元の範囲外のピクセル値を生成します。

内挿カーネル説明
'box'

箱型のカーネル

箱型のカーネルは、categorical イメージでサポートされている唯一の内挿カーネルです。

'triangle'三角のカーネル ('bilinear' と等価)
'cubic'3 次カーネル ('bicubic' と等価)
'lanczos2'Lanczos-2 カーネル
'lanczos3'Lanczos-3 カーネル

method が 2 要素 cell 配列の場合、カスタム内挿カーネルを定義します。cell 配列の形式は {f,w} で、f はカスタム内挿カーネルの関数ハンドル、w はカスタム カーネルの幅です。f(x) は -w/2 <= x < w/2 の区間外はゼロでなければなりません。関数ハンドル f は、スカラーまたはベクトル入力で呼び出すことができます。ユーザー指定の内挿カーネルの場合、出力イメージのいくつかの値が、入力イメージのピクセル値の範囲からわずかに外れる可能性があります。

データ型: char | string | cell

名前と値のペアの引数

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

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

イメージ縮小時のアンチエイリアシングの実行。'Antialiasing'true または false で構成されるコンマ区切りのペアとして指定します。

  • 内挿 method'nearest' の場合、'Antialiasing' の既定値は false になります。

  • 内挿 method'box' 内挿カーネルで、入力イメージがカテゴリカルの場合、'Antialiasing' の既定値は false になります。

  • その他すべての内挿法の場合、既定値は true です。

データ型: 論理値

インデックス付きイメージの最適化されたカラーマップまたは元のカラーマップの出力。'Colormap' と次のいずれかから構成されるコンマ区切りのペアとして指定します。

説明
'original'出力カラーマップ newmap は入力カラーマップ map と同じになります。
'optimized'imresize は新たに最適化されたカラーマップを返します。

'Colormap' 引数は、インデックス付きイメージのサイズを変更する場合のみ有効です。

データ型: char | string

カラー ディザリングの実行。'Dither'true または false で構成されるコンマ区切りのペアとして指定します。ディザリングでは、量子化誤差のランダム化や大規模パターンの回避のために、一種のノイズをイメージに適用します。

この引数は、インデックス付きイメージ X のサイズを変更する場合のみ有効です。

データ型: logical

内挿法。'Method' と string スカラー、文字ベクトルまたは 2 要素 cell 配列から構成されるコンマ区切りのペアとして指定します。詳細については、method を参照してください。

データ型: char | string | cell

出力イメージのサイズ。'OutputSize'[numrows numcols] 形式の正の整数の 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。

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

サイズ変更の倍率。'Scale' と正の数値または正の数値の 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。スカラーを指定する場合、imresize はイメージの各次元に同じ倍率を適用します。スケール値の 2 要素ベクトルを指定する場合、imresize は各次元に異なるスケール値を適用します。

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

出力引数

すべて折りたたむ

サイズ変更されたイメージ。入力イメージ I と同じクラスの数値配列、logical 配列、または categorical 配列として返されます。

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

最適化されたカラーマップ。範囲 [0, 1] の値を持つ c 行 3 列の数値行列として返されます。各行は、カラーマップの単一色を構成する赤、緑、青の成分を指定する 3 要素の RGB 3 成分です。

ヒント

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

  • imresize は、CPU と GPU での結果にわずかな数値の差があります。これらの差はイメージの右と下の境界線上に生じ、肉眼ではほとんど確認できないものです。

  • 出力イメージのサイズが整数にならない場合、imresize は指定されたスケールを使用しません。出力イメージのサイズを計算する際、imresizeceil を使用します。

拡張機能

R2006a より前に導入