Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

impoly

(非推奨) ドラッグとサイズ変更が可能な多角形を作成

関数 impoly は推奨されません。代わりに、新しい Polygon オブジェクトを使用してください。新しい ROI 作成簡易関数 drawpolygon を使用することもできます。別のオプションとして、Polyline オブジェクトを使用して、開いた多角形または "ポリライン" 形状を作成することもできます。詳細については、互換性の考慮事項を参照してください。

説明

impoly オブジェクトはイメージ上に対話型で多角形をカプセル化します。

マウスを使用して、頂点を追加、多角形のサイズと位置を調整できます。多角形には、その外観や動作などを制御するコンテキスト メニューもあります。詳細については、使用方法を参照してください。

作成

説明

h = impoly は、現在の座標軸で多角形の対話型の配置を開始し、impoly オブジェクトを返します。

h = impoly(hparent) は、hparent で指定されるオブジェクトに多角形の対話型の配置を開始します。

h = impoly(hparent,position)position で定義される座標の頂点をもつ、ドラッグとサイズ変更が可能な多角形を作成します。

h = impoly(___,Name,Value) は、多角形の動作をコントロールする名前と値のペアを指定します。

入力引数

すべて展開する

親オブジェクトのハンドル。ハンドルとして指定します。親は通常 axes オブジェクトですが、hggroup オブジェクトの親である他の任意のオブジェクトにもなります。

多角形の頂点の位置。n 行 2 列の行列として指定します。2 つの列は、n 個の各頂点に対して x と y 座標を定義します。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

位置制約関数。'PositionConstraintFcn' と関数ハンドルで構成されるコンマ区切りのペアとして指定します。fcn はマウスをドラッグできるときはいつでも呼び出せます。この関数を使用して、多角形をドラッグできる場所を制御します。有効な関数ハンドルの詳細については、関数 setPositionConstraintFcn のヘルプを参照してください。

多角形が閉じている。'Closed'true または false から構成されるコンマ区切りのペアとして指定します。true (既定の設定) に設定すると、impoly は閉多角形を作成します。つまり、指定した最後の頂点と指定した最初の頂点間に直線を描き、閉じた領域を作成します。Closedfalse の場合、impoly は最後の頂点を最初の頂点と結ばないので、開いた多角形 (ポリライン) が作成されます。

データ型: logical

プロパティ

すべて展開する

ROI が削除可能。true または false を指定します。

データ型: logical

使用法

対話型構文で impoly を呼び出すと、ポインターはイメージ上で十字形 に変わります。多角形の頂点を定義し、多角形のサイズ、形状、位置を調整するには、マウスをクリック アンド ドラッグします。既定の設定では、impoly は、描画した最後の点と最初の点を結ぶ直線を描画しますが、Closed パラメーターを使用してこの動作を制御できます。

多角形では、その外観や動作などを制御するコンテキスト メニューもサポートされています。コンテキスト メニューに表示される選択肢は、ポインターを多角形の辺 (または領域内の任意の位置) に配置したか、頂点の 1 つに配置したかにより異なります。図は、ポインターが頂点ではなく多角形の上にあるときのコンテキスト メニューを示しています。

表に impoly がサポートしている対話型動作を示します。

対話型動作説明
多角形を閉じる

次のいずれかの方法を使用してください。

  • 選択した多角形の最初の頂点にポインターを移動します。ポインターが円 に変わります。いずれかのマウス ボタンをクリックします。

  • 左マウス ボタンをダブルクリックします。この操作により、マウスの下の点に頂点が作成され、この頂点と最初の頂点をつなぐ直線が描画されます。

  • 右マウス ボタンをクリックします。この操作により、選択した最後の頂点と初期の頂点をつなぐラインが描画されますが、新しい頂点は作成されません。

新しい頂点の追加ポインターをポリゴンのエッジに移動します。A キーを押したままにします。ポインターの形状が に変わります。左マウス ボタンをクリックして、ライン上のその位置に新しい頂点を作成します。
頂点の移動(多角形の整形)ポインターを頂点上に移動します。ポインターが円 に変わります。頂点を新しい位置にクリック アンド ドラッグします。
頂点の削除ポインターを頂点上に移動します。形状が円 に変わります。右クリックして、コンテキスト メニューから [頂点の削除 を選択します。この操作により頂点が削除され、多角形の形状が調整されます。削除した頂点の近傍点である 2 つの頂点の間に新しい直線が描画されます。
多角形の削除ポインターを、頂点ではなく、多角形の内側または多角形を定義しているいずれかの線の上に移動します。右クリックして、コンテキスト メニューから [削除] を選択します。コンテキスト メニューからこのオプションを削除するには、Deletable プロパティを false に設定します。h = impoly(); h.Deletable = false;
多角形の移動多角形内のポインターを移動します。ポインターが花形 に変わります。マウスをクリック アンド ドラッグして、多角形を移動します。
多角形の色の変更多角形内のポインターを移動します。右クリックで表示されるコンテキスト メニューから [色の設定] を選択します。
頂点の座標の取得 多角形内のポインターを移動します。右クリックして、コンテキスト メニューから [位置のコピー] を選択します。impoly は、各頂点の x および y 座標を含む n 行 2 列の配列をクリップボードにコピーします。n は指定された頂点の数です。

オブジェクト関数

impoly オブジェクトは、多くのメソッドをサポートしています。詳細なリストを参照するには、methods impoly を入力してください。

addNewPositionCallbackROI オブジェクトに新しい位置のコールバックを追加する
createMaskイメージ内にマスクを作成する
deleteハンドル オブジェクトの削除
getColorROI オブジェクトの描画に使用する色を取得する
getPositionROI オブジェクトの現在の位置を返す
getPositionConstraintFcn現在の位置制約関数への関数ハンドルを返す
removeNewPositionCallbackROI オブジェクトから新しい位置のコールバックを削除する
resume(非推奨) MATLAB コマンド ラインの実行の再開
setClosedROI オブジェクトのクローズ動作の設定
setColorROI オブジェクトの描画に使用する色を設定する
setConstrainedPositionROI オブジェクトに新しい位置を設定する
setPosition(非推奨) ROI オブジェクトを新しい位置に移動
setPositionConstraintFcnROI オブジェクトの位置制約関数の設定
setVerticesDraggableROI オブジェクトの頂点の動作の設定
wait(非推奨) ROI の作成が完了するまで MATLAB コマンド ラインをブロックする

すべて折りたたむ

イメージを表示します。

imshow('gantrycrane.png')

5 個の頂点の位置を指定してイメージ上に多角形を描画します。

h = impoly(gca,[188,30; 189,142; 93,141; 13,41; 14,29]);

多角形の色を黄に設定します。

setColor(h,'yellow');

新しい位置のコールバック関数を定義します。この関数は多角形を移動するときに常に多角形の現在の位置を表示します。

addNewPositionCallback(h, @(p) title(mat2str(p,3)));

makeConstrainToRectFcn を使用し、イメージの境界を範囲として指定することで、多角形の移動を制限する関数を作成します。setPositionConstraintFcn を使用して境界制約関数を実行します。

fcn = makeConstrainToRectFcn('impoly',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(h,fcn);

イメージを表示します。

figure
imshow('gantrycrane.png');

複数の頂点を指定して多角形を作成しますが、対話形式で終了できるように未完成の状態にします。この例では、Closedfalse に設定しているため、多角形は開いたままです。多角形の端点のいずれかにカーソルを移動すると、カーソルの形状が円に変わります。

h = impoly(gca,[203,30; 202,142; 294,142],'Closed',false);

多角形を完成します。既存ラインの終端の 1 つをつかみます。ラインをドラッグして、作成する形状のもう一方のコーナーに延長します。次に、ライン上で A キーを押したままカーソルを置き、頂点をラインに追加します。頂点を作成したら、その頂点を任意の位置にドラッグすると目的の形状を作成できます。必要に応じてラインのドラッグや頂点の追加を続けます。詳細については、使用方法を参照してください。

ヒント

image オブジェクトを含んでいる axes で impoly を使用し、位置制約関数を指定しない場合、イメージの範囲外に多角形をドラッグすると、それが失われることがあります。関数 plot で作成した座標軸で使用すると、多角形が座標軸の範囲外にドラッグされた場合、座標軸の範囲は自動的に拡張されます。

互換性の考慮事項

すべて展開する

R2018b 以降は非推奨

R2007b で導入