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 と MATLAB 関数 subplot を使用して、1 つの 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 は、オプションの空間参照情報を使用してイメージのペアを表示します。

参考

| |

関連するトピック