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×364 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 列のピクセルの重み付き平均です。

“双三次的”

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

メモ

双三次内挿は、元の範囲外のピクセル値を生成する可能性があります。

内挿カーネル 説明
"box" 箱型のカーネル
“三角形” 三角カーネル ("bilinear"と等価)
"cubic" 3 次カーネル (“双三次的”と等価)
"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

名前と値の引数

例:'Antialiasing',falseは、イメージ縮小時にアンチエイリアシングを実行しません。

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

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

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

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

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

データ型:logical

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

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

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

データ型:char|string

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

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

データ型:logical

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

データ型:char|string|cell

出力イメージのサイズ。'OutputSize'と正の数値の 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。詳細については、[numrows numcols]を参照してください。

データ型: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

出力引数

すべて折りたたむ

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

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

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

ヒント

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

拡張機能

バージョン履歴

R2006a より前に導入

参考

(Image Processing Toolbox)|

トピック