Main Content

imresize

イメージのサイズ変更

説明

B = imresize(A,scale) は、イメージ A のサイズの scale 倍のイメージ B を返します。入力イメージ A は、グレースケール イメージ、RGB イメージ、バイナリ イメージ、categorical イメージのいずれでも構いません。

A が 2 次元より大きい場合、imresize は最初の 2 次元のサイズのみを変更します。scale が 0 ~ 1 の場合、BA より小さくなります。scale が 1 より大きい場合、BA より大きくなります。既定では、imresize は双三次内挿を使用します。

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

[Y,newmap] = imresize(X,map,___) はインデックス付きイメージ X のサイズを変更します。ここで、map はイメージに関連付けられたカラーマップです。

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

___ = imresize(___,Name,Value) は、名前と値の引数でサイズ変更操作のさまざまな特性を制御し、サイズの変更されたイメージを返します。名前と値の引数は、その他すべての入力引数の後に指定します。

すべて折りたたむ

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

I = imread('ngc6543a.jpg');

イメージを 2 分の 1 に縮小します。

J = imresize(I, 0.5);

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

figure, imshow(I), figure, imshow(J)

Figure contains an axes object. The axes object contains an object of type image.

Figure contains an axes object. The axes object contains an object of type image.

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

I = imread('ngc6543a.jpg');

最近傍内挿を使用して、イメージを元のサイズの 40% に縮小します。これは最も高速な方法ですが、品質は最も低くなります。

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

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

imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

imshow(J)
title('Resized Image Using Nearest Neighbor Interpolation')

Figure contains an axes object. The axes object with title Resized Image Using Nearest Neighbor Interpolation contains an object of type image.

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

RGB = imread('peppers.png');

RGB イメージが 64 行になるようにサイズを変更します。imresize は列数を自動的に計算します。

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

サイズ変更後のイメージのサイズを取得します。

sz = size(RGB2)
sz = 1×3

    64    86     3

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

imshow(RGB)
title("Original Image")

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

imshow(RGB2)
title("Resized Image with 64 Rows")

Figure contains an axes object. The axes object with title Resized Image with 64 Rows contains an object of type image.

インデックス付きイメージをワークスペースに読み取ります。

[X,map] = imread("corn.tif");

インデックス付きイメージのサイズを 50% 大きくします。

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

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

imshow(X,map)
title("Original Indexed Image and Colormap")

Figure contains an axes object. The axes object with title Original Indexed Image and Colormap contains an object of type image.

imshow(Y,newmap)
title("Resized Image and Optimized Colormap")

Figure contains an axes object. The axes object with title Resized Image and Optimized Colormap contains an object of type image.

入力引数

すべて折りたたむ

サイズを変更するイメージ。いずれかの次元の数値配列、logical 配列、または categorical 配列として指定します。入力は非スパースでなければならず、数値入力は実数でなければなりません。

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

サイズ変更係数。正の数値として指定します。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 列の数値行列として指定します。各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する RGB 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 は、スカラーまたはベクトル入力を指定して呼び出すことができます。ユーザー指定の内挿カーネルの場合、出力イメージのいくつかの値が、入力イメージのピクセル値の範囲からわずかに外れる可能性があります。

組み込みカーネルとカスタム内挿カーネルの詳細については、Create and Compare Resizing Interpolation Kernelsを参照してください。

データ型: char | string | cell

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: B = imresize(A,0.5,Antialiasing=false) は、イメージ縮小時にアンチエイリアシングを実行しません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: B = imresize(A,0.5,"Antialiasing",false) は、イメージ縮小時にアンチエイリアシングを実行しません。

イメージ縮小時のアンチエイリアシングの実行。true または false として指定します。

  • 内挿の method"nearest" の場合、'Antialiasing' の既定値は false です。

  • 内挿の method"box" で入力イメージが categorical の場合、'Antialiasing' の既定値は false です。

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

データ型: logical

インデックス付きイメージの最適化されたカラーマップまたは元のカラーマップの出力。次の値のいずれかとして指定します。

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

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

データ型: char | string

カラー ディザリングの実行。true または false として指定します。ディザリングでは、量子化誤差のランダム化や大規模パターンの回避のために、一種のノイズをイメージに適用します。

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

データ型: logical

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

データ型: char | string | cell

出力イメージのサイズ。正の数値の 2 要素ベクトルとして指定します。詳細については、[numrows numcols] を参照してください。

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

サイズ変更の倍率。正の数値、または正の数値の 2 要素ベクトルとして指定します。スカラーを指定した場合、imresize は行と列の次元に同じ倍率を適用します。2 要素ベクトルを指定した場合、imresize はそれぞれの次元に異なるスケール値を適用します。

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

出力引数

すべて折りたたむ

サイズの変更されたイメージ。入力イメージ A と同じデータ型の数値配列、logical 配列、または categorical 配列として返されます。

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

サイズの変更されたインデックス付きイメージ Y のカラーマップ。m 行 3 列の数値行列として返されます。既定では、imresize は、サイズの変更されたイメージとともに最適化された新しいカラーマップを返します。元のカラーマップと同じカラーマップを返す場合は、名前と値の引数 'Colormap' を使用します。

ヒント

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

拡張機能

バージョン履歴

R2006a より前に導入