imresize
イメージのサイズ変更
構文
説明
は、2 要素ベクトル B
= imresize(A
,[numrows numcols]
)[numrows numcols]
で指定された行数と列数をもつイメージ B
を返します。
___ = imresize(___,
は、名前と値の引数でサイズ変更操作のさまざまな特性を制御し、サイズの変更されたイメージを返します。名前と値の引数は、その他すべての入力引数の後に指定します。Name,Value
)
例
既定の内挿法を使用してイメージを 2 分の 1 に縮小
イメージをワークスペースに読み込みます。
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 イメージをワークスペースに読み取ります。
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")
入力引数
A
— サイズを変更するイメージ
数値配列 | logical 配列 | categorical 配列
サイズを変更するイメージ。いずれかの次元の数値配列、logical 配列、または categorical 配列として指定します。入力は非スパースでなければならず、数値入力は実数でなければなりません。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
| categorical
scale
— サイズ変更係数
正の数値
サイズ変更係数。正の数値として指定します。imresize
は行と列の次元に同じ倍率を適用します。それぞれの次元に異なるサイズ変更係数を適用するには、名前と値の引数 Scale
を使用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
[numrows numcols]
— 出力イメージの行と列の次元
正の数値の 2 要素ベクトル
出力イメージの行と列の次元。正の数値の 2 要素ベクトルとして指定します。numrows
または numcols
のいずれかに値 NaN
を指定できます。この場合、imresize
は、その次元の行数または列数を自動的に計算してイメージの縦横比を維持します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
X
— サイズを変更するインデックス付きイメージ
非スパースの実数値配列
サイズを変更するインデックス付きイメージ。正の整数から成る非スパースの実数値配列として指定します。
データ型: double
| uint8
| uint16
map
— インデックス付きイメージに関連付けられたカラーマップ
c 行 3 列の数値行列
インデックス付きイメージ X
に関連付けられたカラーマップ。値の範囲が [0, 1] の c 行 3 列の数値行列として指定します。各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する RGB 3 成分です。
データ型: double
method
— 内挿法
文字ベクトル | string スカラー | 2 要素 cell 配列
内挿法。文字ベクトル、string スカラー、または 2 要素 cell 配列として指定します。数値イメージと logical イメージの既定値は "bicubic"
です。categorical イメージの既定値は "nearest"
です。categorical イメージは、値 "nearest"
および "box"
のみをサポートします。
method
が文字ベクトルまたは string スカラーの場合、次の表にリストされる特定のメソッドまたは名前付き内挿カーネルを識別します。
メソッド | 説明 |
---|---|
| 最近傍内挿。出力ピクセルには、対象の点が含まれるピクセルの値が代入されます。他のピクセルは考慮されません。 |
| 双一次内挿。出力ピクセル値は、最近傍の 2 行 2 列のピクセルの重み付き平均です。 |
| 双三次内挿。出力ピクセル値は、最近傍の 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)
は、イメージ縮小時にアンチエイリアシングを実行しません。
Antialiasing
— イメージ縮小時のアンチエイリアシングの実行
true
| false
イメージ縮小時のアンチエイリアシングの実行。true
または false
として指定します。
内挿の
method
が"nearest"
の場合、Antialiasing
の既定値はfalse
です。内挿の
method
が"box"
で入力イメージが categorical の場合、Antialiasing
の既定値はfalse
です。その他すべての内挿法の場合、既定値は
true
です。
データ型: logical
Dither
— カラー ディザリングの実行
true
(既定値) | false
カラー ディザリングの実行。true
または false
として指定します。ディザリングでは、量子化誤差のランダム化や大規模パターンの回避のために、一種のノイズをイメージに適用します。
引数 Dither
は、インデックス付きイメージのサイズを変更する場合にのみ有効です。
データ型: logical
Method
— 内挿法
文字ベクトル | string スカラー | cell 配列
内挿法。文字ベクトル、string スカラー、または 2 要素 cell 配列として指定します。詳細については、method
を参照してください。
データ型: char
| string
| cell
OutputSize
— 出力イメージのサイズ
正の数値の 2 要素ベクトル
出力イメージのサイズ。正の数値の 2 要素ベクトルとして指定します。詳細については、[numrows numcols]
を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Scale
— サイズ変更の倍率
正の数値 | 正の数値の 2 要素ベクトル
サイズ変更の倍率。正の数値、または正の数値の 2 要素ベクトルとして指定します。スカラーを指定した場合、imresize
は行と列の次元に同じ倍率を適用します。2 要素ベクトルを指定した場合、imresize
はそれぞれの次元に異なるスケール値を適用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
B
— サイズの変更されたイメージ
数値配列 | logical 配列 | categorical 配列
サイズの変更されたイメージ。入力イメージ A
と同じデータ型の数値配列、logical 配列、または categorical 配列として返されます。
Y
— サイズの変更されたインデックス付きイメージ
数値配列
サイズの変更されたインデックス付きイメージ。入力インデックス付きイメージ X
と同じデータ型の数値配列として返されます。
newmap
— サイズの変更されたインデックス付きイメージのカラーマップ
m 行 3 列の数値行列
サイズの変更されたインデックス付きイメージ Y
のカラーマップ。m 行 3 列の数値行列として返されます。既定では、imresize
は、サイズの変更されたイメージとともに最適化された新しいカラーマップを返します。元のカラーマップと同じカラーマップを返す場合は、名前と値の引数 "Colormap"
を使用します。
ヒント
出力イメージのサイズが整数にならない場合、
imresize
は指定されたスケールを使用しません。imresize
は出力イメージのサイズの計算時に関数ceil
を使用します。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
名前と値の引数
Colormap
やDither
など、インデックス付きイメージに対応する構文はサポートされません。カスタム内挿カーネルはサポートされません。
すべての名前と値の引数はコンパイル時に定数でなければなりません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
名前と値の引数
Colormap
およびDither
はサポートされません。インデックス付きイメージはサポートされません。
カスタム内挿カーネルはサポートされません。
すべての名前と値のペアはコンパイル時に定数でなければなりません。
一部の内挿カーネルでは、MATLAB® と生成されたコードの結果で数値がわずかに異なることがあります。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
要素数が 227 を超える
gpuArray
入力はサポートされません。gpuArray
入力は非スパースでなければなりません。基となる型が
categorical
のgpuArray
入力はサポートされません。インデックス付きイメージは GPU ではサポートされません。
双三次内挿を使用する場合、出力イメージのいくつかの値が、入力イメージのピクセル値の範囲からわずかに外れる可能性があります。
CPU と GPU では、
imresize
の結果の数値はわずかに異なります。このような差異はイメージの右側と下側の境界で発生し、肉眼ではほとんどわかりません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入R2019a: categorical イメージのサポート
関数 imresize
は categorical イメージをサポートするようになりました。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)