imresize
イメージのサイズ変更
構文
説明
は、2 要素ベクトル B = imresize(A,[numrows numcols])[numrows numcols] で指定された行数と列数をもつイメージ B を返します。
___ = imresize(___, は、名前と値の引数でサイズ変更操作のさまざまな特性を制御し、サイズの変更されたイメージを返します。名前と値の引数は、他のすべての入力引数の後で指定します。Name=Value)
例
イメージをワークスペースに読み取ります。
I = imread("ngc6543a.jpg");イメージを 2 分の 1 に縮小します。
J = imresize(I, 0.5);
元のイメージとサイズの変更されたイメージを表示します。
imshow(I)

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");イメージが 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 配列として指定します。数値イメージと論理イメージの既定値は "bicubic" です。categorical イメージの既定値は "nearest" です。categorical イメージは、値 "nearest" および "box" のみをサポートします。
| 手法 | 説明 |
|---|---|
| 最近傍内挿。箱型の内挿カーネルを使用して実行されます。出力ピクセルには、対象の点が含まれるピクセルの値が代入されます。他のピクセルは考慮されません。 |
| 双一次内挿。三角内挿カーネルを使用して実行されます。出力ピクセル値は、最近傍の 2 行 2 列のピクセルの加重平均です。 |
| 双三次内挿。区分的 3 次内挿カーネルを使用して実行されます。出力ピクセル値は、最近傍の 4 行 4 列のピクセルの重み付き平均です。
メモ 双三次内挿は、元の範囲外のピクセル値を生成する可能性があります。
|
"lanczos2" | Lanczos-2 カーネルを使用した内挿。 |
"lanczos3" | Lanczos-3 カーネルを使用した内挿。 |
| 2 要素 cell 配列 | カスタム内挿カーネルを使用した内挿。 {f,w} の形式の cell 配列を指定します。ここで、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
カラー ディザリングの実行。true または false として指定します。ディザリングでは、量子化誤差のランダム化や大規模パターンの回避のために、一種のノイズをイメージに適用します。
引数 Dither は、インデックス付きイメージのサイズを変更する場合にのみ有効です。
データ型: logical
内挿法。文字ベクトル、string スカラー、または 2 要素 cell 配列として指定します。詳細については、method を参照してください。
データ型: char | string | cell
出力イメージのサイズ。正の数値の 2 要素ベクトルとして指定します。詳細については、[numrows numcols] を参照してください。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
R2026a 以降
パディング。"symmetric" または "replicate" として指定します。imresize 関数は、内挿を実行する前にパディングを適用します。
値 | 説明 | 例 |
|---|---|---|
| パディングされたピクセルがイメージのエッジの鏡像になるように追加されます。 |
|
| パディングされたピクセルによって最も近い境界ピクセルの値が再現されます。 |
|
データ型: char | string
サイズ変更の倍率。正の数値、または正の数値の 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
出力引数
拡張機能
使用上の注意および制限:
名前と値の引数
ColormapやDitherなど、インデックス付きイメージに対応する構文はサポートされません。カスタム内挿カーネルはサポートされません。
すべての名前と値の引数はコンパイル時に定数でなければなりません。
使用上の注意および制限:
名前と値の引数
ColormapおよびDitherはサポートされません。インデックス付きイメージはサポートされません。
カスタム内挿カーネルはサポートされません。
すべての名前と値のペアはコンパイル時に定数でなければなりません。
一部の内挿カーネルでは、MATLAB® と生成されたコードの結果で数値がわずかに異なることがあります。
imresize 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
imresize 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
gpuArray入力は非スパースでなければなりません。基となる型が
categoricalのgpuArray入力はサポートされません。インデックス付きイメージは GPU ではサポートされません。
双三次内挿を使用する場合、出力イメージのいくつかの値が、入力イメージのピクセル値の範囲からわずかに外れる可能性があります。
CPU と GPU では、
imresizeの結果の数値はわずかに異なります。このような差異はイメージの右側と下側の境界で発生し、肉眼ではほとんどわかりません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入imresize 関数で、イメージの境界のピクセル値を再現するパディングがサポートされるようになりました。境界ピクセルの値を再現するパディングを適用するには、新しい名前と値の引数 Padding を "replicate" として指定します。
R2026a より前は、imresize 関数で対称パディングのみがサポートされていました。
関数 imresize は categorical イメージをサポートするようになりました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)

