ドキュメンテーション

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

imresize

イメージのサイズ変更

説明

J = imresize(I,scale) は、グレースケール イメージ、RGB イメージまたはバイナリ イメージ Iscale 倍のサイズのイメージ J を返します。I が 2 次元より大きい場合、imresize は最初の 2 次元のサイズのみを変更します。既定では、imresize は双三次内挿を使用し、アンチエイリアシングを実行します。

オプションで、イメージのサイズの変更を GPU を使用して実行できます (Parallel Computing Toolbox™ が必要)。詳細は、GPU での画像処理を参照

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

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

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

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

GPU では 'bicubic' および 'cubic' 内挿法のみがサポートされています。

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

イメージをワークスペースの 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')

入力引数

すべて折りたたむ

サイズを変更するイメージ。任意の次元の数値配列または logical 配列として指定します。

GPU を使用してイメージのサイズを変更するには、I をデータ型が double または single の数値配列を含む gpuArray として指定します。

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

サイズ変更係数。正の数値として指定します。

  • scale が 1 より小さい場合、出力イメージ (J または Y) は入力イメージ (I または X) より小さくなります。

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

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

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

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

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

データ型: double | uint8 | uint16

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

データ型: double

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

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

メソッド説明

'nearest'

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

'bilinear'

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

'bicubic'

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

メモ

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

内挿カーネル説明
'box'箱型のカーネル
'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 になります。

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

データ型: logical

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

  • 'original' — 出力されるカラーマップ (newmap) は入力されたカラーマップ (map) と同じになります。

  • 'optimized'imresize は新たに最適化されたカラーマップを返します。

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

データ型: 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 要素ベクトルで構成されるコンマ区切りのペアとして指定します。

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

出力引数

すべて折りたたむ

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

GPU を使用してイメージのサイズを変更する場合、J は数値配列を含む gpuArray として返されます。

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

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

ヒント

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

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

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

拡張機能

R2006a より前に導入