Main Content

対話型ツールのワークフロー

対話型ツールの使用には通常、以下の手順が含まれます。

Figure ウィンドウでのターゲット イメージの表示

MATLAB® Figure ウィンドウに処理するイメージ ("ターゲット イメージ" と呼ばれる) を表示します。イメージ表示用の figure、axes、および image オブジェクトのプロパティが最適化されるため、関数 imshow を推奨しますが、関数 image または imagesc を使用することもできます。

一部のツールはイメージを含んでいる Figure ウィンドウに追加されます。境界を含めることで、イメージ上にツールを表示しないようにしてください。関数 imshow を使用する場合は、Image Processing Toolbox™ の ImshowBorder 基本設定を "loose" に設定してください (これは既定の設定です)。

ツールの作成

Figure ウィンドウにイメージを表示した後、対応するツール作成関数を使用して 1 つ以上のツールを作成します。利用可能なツールについては、対話的なイメージの表示および処理のツールを参照してください。関数はツールを作成し、ツールとターゲット イメージの間の対話型接続を自動的に設定します。

ツールのターゲット イメージへの関連付け

ツールを作成する場合、ターゲット イメージを指定するか、または適切なターゲット イメージがツールによって選択されるようにすることができます。

  • ターゲット イメージを指定するには、ツール作成関数への入力引数としてターゲット イメージのハンドルを指定します。このハンドルは、特定の image オブジェクトでも、image を含んでいる figure、axes または panel オブジェクトでも構いません。

  • ターゲット イメージがツールによって選択されるようにするには、入力引数なしでツール作成関数を呼び出します。既定の設定では、ツールは現在の Figure 内のイメージをターゲット イメージとして使用します。現在の Figure に複数のイメージが含まれている場合、ツールは figure オブジェクトの子 (最後に作成されたイメージ) の最初のイメージに関連付けられます。引数なしの構文を指定できないツールもある点に注意してください。

一部のツールでは 1 つの figure の中で、複数のイメージを取り扱うことができます。対象は、impixelinfoimpixelinfoval、および imdisplayrange です。

ツールの親の指定

ツールを作成する場合、そのツールの親にするオブジェクトをオプションで指定できます。親を指定することで、ツールが表示される画面上の場所を決めます。ツール作成関数のこの構文を使用して、ターゲット イメージを含んでいる Figure ウィンドウにツールを追加したり、別の Figure ウィンドウでツールを開いたり、他の組み合わせを作成したりすることができます。

親の指定はオプションです。親を指定しない場合、ツールは既定の動作を使用します。

  • 表示範囲ツールやピクセル情報ツールのような一部の小さいツールは、ターゲット イメージの親を自身の親として使用し、同じ Figure ウィンドウにターゲット イメージとして挿入されます。

  • コントラスト調整ツールやカラーマップの選択ツールなどの他のツールは、独自の別の Figure で開きます。

  • 概要ツールおよびピクセル領域ツールの 2 つのツールは、親の Figure を指定するための別個の作成関数をもっています。それらの基本の作成関数である関数 imoverviewimpixelregion は、ツールを別の Figure ウィンドウで開きます。異なる親を指定するには、関数 imoverviewpanel および impixelregionpanel を使用しなければなりません。例については、ピクセル領域ツールの作成を参照してください。

    メモ

    概要ツールおよびピクセル領域ツールは、独自の Figure ウィンドウに作成された場合に、追加の機能を提供します。たとえば、両方のツールに、panel バージョンの一部ではないズーム ボタンが含まれます。

位置決めツール

各ツールには既定の位置決め動作があります。たとえば、関数 impixelinfo は Figure ウィンドウの幅全体を占める panel オブジェクトとしてツールを作成し、ターゲット イメージの Figure ウィンドウの左下隅に配置します。

ツールは、panel オブジェクトなどのグラフィックス オブジェクトから作成されるため、オブジェクトのプロパティを設定することで既定の配置やその他の特性を変更できます。ツールやその他のグラフィックス オブジェクトの位置を指定するには、4 要素の位置ベクトル [left bottom width height] として Position プロパティを設定します。leftbottom の値は、Figure のような親コンテナー オブジェクトの左下隅からの距離を指定します。widthheight の値はオブジェクトの次元を指定します。

位置ベクトルを指定すると、オブジェクトの Units プロパティの値を設定して、値の単位をベクトルで指定できます。サイズ変更動作を向上させるには、正規化された単位を使用してください。正規化された単位はピクセルによる正確な位置ではなく、ツールの相対的な位置を指定するからです。

たとえば、Figure に組み込まれたピクセル領域ツールを初めて作成すると、Figure 全体を占めるように見えます。これは、既定の設定では位置ベクトルは、正規化された単位で [0 0 1 1] に設定されているからです。この位置ベクトルは、その親の左下隅に自動的に位置合わせしてオブジェクト全体を塗りつぶすようにツールに指示します。イメージとピクセル情報ツールおよび表示範囲ツールをすべて表示するには、Figure ウィンドウの下半分のピクセル領域ツールの位置を変更して、下部をピクセル情報ツールと表示範囲ツール用に空けておきます。これはピクセル領域ツールの位置ベクトルです。

set(hpixreg,"Units","normalized","Position",[0 .08 1 .4])

ピクセル領域 ツールを表示するには、次の位置ベクトルを使用して、ターゲット イメージが Figure ウィンドウの上半分に収まるように位置を変更します。イメージの位置を変更するには、それを含んでいる axes オブジェクトの Position プロパティを指定しなければなりません。image オブジェクトには Position プロパティがありません。

set(hax,"Units","normalized","Position",[0 0.5 1 0.5])

例については、ピクセル領域ツールの作成を参照してください。

ナビゲーション支援ツールの追加

ツールボックスに含まれているツールを使用して、GUI アプリケーションにナビゲーション支援ツールを追加できます。

スクロール パネルは主要ナビゲーション ツールで、他のナビゲーション ツールの前提条件となります。スクロール パネルにイメージを表示するとき、イメージが大きすぎて Figure ウィンドウに収まらない場合は、イメージの一部だけが表示されます。イメージの一部しか見えないとき、スクロール パネルは水平と垂直のスクロール バーを追加して、現在見えていないイメージの部分を表示できるようにします。

スクロール パネルを作成したら、オプションでその他のナビゲーション ツール (概要ツールや Magnification ツール) を追加できます。概要ツールには、サイズに合わせてスケーリングしたイメージ全体のビューが表示されます。その上に四角形が重ね合わされ、現在スクロール パネルに表示されているイメージの部分を示します。倍率ボックスにはイメージの現在の倍率が表示され、倍率の変更にも使用できます。

スクロール パネルをイメージ画面に加えると、表示に使用されたグラフィックス オブジェクトの関係が変わります。詳細については、Figure へのスクロール パネルの追加を参照してください。

メモ

ツールボックスのナビゲーション ツールは、標準の MATLAB Figure ウィンドウのナビゲーション ツールと互換性がありません。これらのツールを GUI で使用する場合は、ツール間の競合を防ぐために Figure ウィンドウのツール バーとメニュー バーを非表示にしてください。

ツールの相互作用のカスタマイズ

ツールを作成し、それをターゲット イメージに関連付けると、ターゲット イメージとツールの間に必要な接続が自動的に作成されます。

ツールによっては、ターゲット イメージと 1 方向接続を確立する場合があります。これらのツールは、ターゲット イメージを操作すると更新されますが、ツールを使用してターゲット イメージを変更することはできません。たとえば、ピクセル情報ツールは、現在ポインターの下にあるピクセルの位置と値に関する情報を受け取ります。

ツールには、ターゲット イメージと双方向接続を確立するものもあります。これらのツールはターゲット イメージを操作すると更新され、ツールを使用するとターゲット イメージが更新されます。例として、概要ツールはターゲット イメージへの双方向接続を設定します。このツールでは、スクロール、パン、倍率の変更などによってターゲット イメージの表示部分が変わった場合、概要ツールが詳細四角形のサイズと位置を変更して、現在表示されているイメージの部分に一致するようにします。反対に、概要ツールで詳細ウィンドウを移動した場合は、スクロール パネル内のターゲット イメージの表示部分が更新されます。

ツールはグラフィックス オブジェクトのコールバック プロパティを使用して、この相互作用を実現します。たとえば、Figure オブジェクトは、マウス ボタンを押したときに実行する WindowButtonMotionFcn コールバックをサポートしています。ツールに関連付けられたアプリケーション プログラミング インターフェイス (API) を使用すると、ツールの接続性をカスタマイズして、イベントの通知を受け取るようにコールバックを設定できます。詳細については、グラフィックス オブジェクトのコールバックの作成およびイベントとリスナーの概要を参照してください。例については、イメージ比較ツールの作成を参照してください。

たとえば、倍率ボックスは setMagnification API 関数を 1 つサポートしています。この API 関数を使用して、倍率ボックスに表示される倍率の値を設定できます。倍率ボックスは、この値に基づいてイメージの倍率を変更するようにスクロール パネルに自動的に通知します。スクロール パネルも、さまざまな API 関数をサポートしています。これらの API の詳細については、各ツールのリファレンス ページを参照してください。

関連する例

詳細