Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

複数イメージの表示

この節では、複数のイメージを同時に表示するさまざまな方法について説明します。

複数のイメージを個別の Figure ウィンドウに表示

複数のイメージを同時に表示する最も単純な方法は、別々の Figure ウィンドウにそれらを表示することです。MATLAB® では、同時に表示できるイメージの数には制限がありません。

imshow は常に現在の Figure にイメージを表示します。2 つのイメージを続けて表示すると、2 つ目のイメージが最初のイメージと置き換えられます。imshow で複数の Figure を表示するには、次のイメージの imshow を呼び出す前に figure コマンドを使用して、新しい空の Figure を明示的に作成します。次の例では、グレースケール イメージの配列 I 内の最初の 3 つのフレームを表示します。

imshow(I(:,:,:,1))
figure
imshow(I(:,:,:,2))
figure
imshow(I(:,:,:,3))

モンタージュに複数のイメージを表示

関数 montage を使用すると、複数のイメージを単一のイメージ オブジェクトとして Figure ウィンドウに表示できます。既定では、montage は、イメージの数と使用する画面のサイズを基にイメージをスケーリングし、全体が正方形になるように調整します。montage では元のイメージの縦横比が維持されます。名前と値の引数 ThumbnailSize を使用して、サムネイルのサイズを指定できます。

モンタージュのイメージでは、タイプとサイズが異なることがあります。montage は、ファイルに存在するカラーマップを使用してインデックス付きイメージを RGB に変換します。

既定では、関数 montage はモンタージュのイメージの間に空白を追加しません。BorderSize パラメーターを使用すると、イメージの間の空白の量を指定できます。BackgroundColor パラメーターを使用して、イメージの間の空間の色も指定できます。

次の例では、イメージのシーケンスをモンタージュとして表示する方法を説明します。

イメージ シーケンスをモンタージュとして表示

この例では、関数 montage を使用してマルチフレーム配列の複数のフレームを一度に表示する方法を説明します。関数 montage は、すべてのイメージ フレームを四角形グリッドに配置して表示します。イメージのモンタージュは 1 つのイメージ オブジェクトです。イメージ フレームは、グレースケール、インデックス付きまたはトゥルーカラー イメージです。インデックス付きイメージを指定する場合、それらのイメージではすべて同じカラーマップを使用しなければなりません。

複数のトゥルーカラー イメージからなる配列を作成します。

onion = imread('onion.png');
onionArray = repmat(onion, [ 1 1 1 4 ]);

すべてのイメージを一度にモンタージュに表示します。既定では、関数 montage は全イメージを 1 つのグリッドに表示します。最初のイメージ フレームは 1 行目の最初の位置、次のフレームは 1 行目の 2 番目の位置、以下同様の配置で表示されます。

montage(onionArray);

Figure contains an axes object. The axes object contains an object of type image.

異なる行や列の数を指定するには 'size' パラメーターを使用します。たとえば、横 1 行にイメージを表示するには、'size' パラメーターの値を [1 NaN] と指定します。montage の他のパラメーターでは、どのイメージを表示するかを指定したり、表示するイメージのコントラストを調整したりできます。

montage(onionArray,'size',[1 NaN]);

Figure contains an axes object. The axes object contains an object of type image.

同じ Figure ウィンドウ内に個別にイメージを表示

関数 imshow を関数 subplot と共に使用して、1 つの Figure ウィンドウに複数のイメージを表示できます。その他のオプションは、多次元配列としてのイメージ シーケンスの使用を参照してください。

関数 imshow を関数 tiledlayout および nexttile と使用すると、異なるカラーマップをもつ複数イメージを同じ Figure に表示できます。

メモ

イメージ ビューアー アプリはこの機能をサポートしていません。

1 つの Figure ウィンドウを複数の表示領域に分割

subplot は、Figure を複数の表示領域に分割します。構文 subplot(m,n,p) を使用して、mn 列の行列の表示領域を定義し、アクティブな領域 p を指定します。

たとえば、次の構文を使用すると 2 つのイメージを並べて表示できます。

[X1,map1]=imread("forest.tif");
[X2,map2]=imread("trees.tif");
subplot(1,2,1), imshow(X1,map1)
subplot(1,2,2), imshow(X2,map2)

Two images displayed in the same figure window.

イメージのペアの比較

関数 imshowpair はイメージのペアを同じ Figure ウィンドウに表示します。この表示は、イメージを比較する場合に便利です。imshowpair は、次のような多くの可視化の方法をサポートします。

  • フォールス カラー。2 つのイメージが異なるカラー帯域で重ね合わせられます。灰色の領域はイメージが同じ強度であることを、色の付いた領域はイメージの強度が異なることを示します。フォールス カラーで表示する前に、RGB イメージはグレースケールに変換されます。

  • アルファ ブレンディング。表示の強度は 2 つの入力イメージの平均値になります。アルファ ブレンディングはグレースケールとトゥルーカラー イメージをサポートします。

  • チェッカーボード。2 つの入力イメージの四角形領域が出力イメージに交互に表示されます。

  • 2 つのイメージの差。RGB イメージはグレースケールに変換されます。

  • モンタージュ。2 つのイメージが並べて表示されます。この可視化モードは関数 montage を使用した表示と似ています。

imshowpair は、オプションの空間参照情報を使用してイメージのペアを表示します。

参考

| |

関連するトピック