このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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×364 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 配列として指定します。
method
が文字ベクトルまたは string スカラーの場合、次の表にリストされる特定のメソッドまたは名前付き内挿カーネルを識別します。
メソッド | 説明 |
---|---|
|
最近傍内挿。出力ピクセルには、対象の点が含まれるピクセルの値が代入されます。他のピクセルは考慮されません。 |
|
双一次内挿。出力ピクセル値は、最近傍の 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
イメージ縮小時のアンチエイリアシングの実行。'Antialiasing'
とtrue
またはfalse
で構成されるコンマ区切りのペアとして指定します。
内挿の
method
が"nearest"
の場合、'Antialiasing'
の既定値はfalse
です。内挿の
method
が"box"
で入力イメージが categorical の場合、'Antialiasing'
の既定値はfalse
です。その他すべての内挿法の場合、既定値は
true
です。
データ型:logical
Colormap
—最適化されたカラーマップの出力
"optimized"
(既定値) |"original"
Dither
—カラー ディザリングの実行
true
(既定値) |false
カラー ディザリングの実行。'Dither'
とtrue
またはfalse
で構成されるコンマ区切りのペアとして指定します。ディザリングでは、量子化誤差のランダム化や大規模パターンの回避のために、一種のノイズをイメージに適用します。
引数'Dither'
は、インデックス付きイメージのサイズを変更する場合のみ有効です。
データ型:logical
Method
—内挿法
“双三次的”
(既定値) |文字ベクトル|cell 配列
内挿法。'Method'
と文字ベクトルまたは 2 要素 cell 配列で構成されるコンマ区切りのペアとして指定します。詳細については、method
を参照してください。
データ型:char
|string
|cell
OutputSize
—出力イメージのサイズ
正の数値の 2 要素ベクトル
出力イメージのサイズ。'OutputSize'
と正の数値の 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。詳細については、[numrows numcols]
を参照してください。
データ型:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
Scale
—サイズ変更の倍率
正の数値|正の数値の 2 要素ベクトル
サイズ変更の倍率。'Scale'
と正の数値または正の数値の 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
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、Run MATLAB Functions in Thread-Based Environmentを参照してください。
GPU 配列
并行计算工具箱™を使用してグラフィックス処理装置(GPU)上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
要素数が 227を超える
gpuArray
入力はサポートされません。gpuArray
入力は非スパースでなければなりません。基となる型が
categorical
のgpuArray
入力はサポートされません。インデックス付きイメージは GPU ではサポートされません。
双三次内挿を使用する場合、出力イメージのいくつかの値が、入力イメージのピクセル値の範囲からわずかに外れる可能性があります。
CPU と GPU では、
imresize
の結果の数値はわずかに異なります。このような差異はイメージの右側と下側の境界で発生し、肉眼ではほとんどわかりません。
詳細については、GPU での MATLAB 関数の実行(Parallel Computing Toolbox)を参照してください。
バージョン履歴
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)