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)

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

I = imread('ngc6543a.jpg');

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

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

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

imshow(I)
title('Original Image')

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

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

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

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

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

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

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

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

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

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

入力引数

すべて折りたたむ

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

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

サイズ変更係数。正の数値として指定します。imresize は行と列の次元に同じ倍率を適用します。それぞれの次元に異なるサイズ変更係数を適用するには、名前と値の引数 Scale を使用します。

イメージの次元の長さが整数にならないサイズ変更係数を指定すると、imresize は関数 ceil の呼び出しによるサイズ変更操作に従います。つまり、出力イメージの行数は ceil(scale*size(A,1))、列数は ceil(scale*size(A,2)) になります。

データ型: 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 配列として指定します。数値イメージと logical イメージの既定値は "bicubic" です。categorical イメージの既定値は "nearest" です。categorical イメージは、値 "nearest" および "box" のみをサポートします。

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

名前と値の引数

引数のオプションのペアを 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

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

データ型: char | string | cell

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

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

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

イメージの次元の長さが整数にならないサイズ変更倍率を指定すると、imresize は関数 ceil の呼び出しによるサイズ変更操作に従います。つまり、出力イメージの行数は ceil(Scale(1)*size(A,1))、列数は ceil(Scale(2)*size(A,2)) になります。

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

出力引数

すべて折りたたむ

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

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

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する