ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

imdistline

説明

imdistline オブジェクトは imline タイプで、距離ツールをカプセル化します。対話型でイメージに引いた線と、それと対になる線の端点間の距離を表示するテキスト ラベルで構成されます。

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

作成

説明

h = imdistline は、現在の Axes に距離ツールを作成します。この関数は、imdistline オブジェクトのハンドル h を返します。

h = imdistline(hparent) は、hparent で指定されたオブジェクト上にドラッグ可能な距離ツールを作成します。

h = imdistline(___,x,y)xy で指定した位置に端点を合わせて距離ツールを作成します。

入力引数

すべて展開する

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

端点の x 座標。2 要素数値ベクトルとして指定します。

例: h = imdistline(gca,[10 100],[20 40]); は 1 番目の端点の (x, y) 座標を (10, 20) に、2 番目の端点を (100, 40) に設定します。

端点の y 座標。2 要素数値ベクトルとして指定します。

例: h = imdistline(gca,[10 100],[20 40]); は 1 番目の端点の (x, y) 座標を (10, 20) に、2 番目の端点を (100, 40) に設定します。

プロパティ

すべて展開する

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

データ型: logical

使用法

距離ツールを移動するには、ライン上にポインターを置きます。ポインターの形状が花形 に変わります。マウスを使用して、ラインをクリック アンド ドラッグします。距離ツールのサイズを変更するには、ラインの端点のいずれかの上にポインターを置きます。ポインターの形状が人差し指型 に変わります。マウスを使用して、ラインの端点をクリック アンド ドラッグします。

このラインでは、その外観や動作などを制御するコンテキスト メニューを使用できます。コンテキスト メニューにアクセスするには、ラインを右クリックします。

距離ツールの動作コンテキスト メニュー項目
端点と距離データをワークスペースにエクスポートするコンテキスト メニューから [ワークスペースにエクスポート] を選択します。
距離ラベルのオン/オフを切り替えるコンテキスト メニューから [距離ラベルを表示する] を選択します。
水平と垂直方向のドラッグの制約を指定するコンテキスト メニューから [ドラッグの制約] を選択します。
ラインを表示するために使用する色を変更するコンテキスト メニューから [色の設定] を選択します。
距離ツール オブジェクトを削除するコンテキスト メニューから [削除] を選択します。

オブジェクト関数

addNewPositionCallbackROI オブジェクトに新しい位置のコールバックを追加する
createMaskイメージ内にマスクを作成する
deleteハンドル オブジェクトの削除
getAngleFromHorizontal距離ツールと水平軸の角度を返す
getColorROI オブジェクトの描画に使用する色を取得する
getDistance距離ツールの端点間の距離を返す
getLabelHandle距離ツールのテキスト ラベルのハンドルを返す
getLabelTextFormatter距離ツールのテキスト ラベルの書式を返す
getLabelVisible距離ツールのテキスト ラベルの可視性を返す
getPositionROI オブジェクトの現在の位置を返す
getPositionConstraintFcn現在の位置制約関数への関数ハンドルを返す
removeNewPositionCallbackROI オブジェクトから新しい位置のコールバックを削除する
resume(非推奨) MATLAB コマンド ラインの実行の再開
setColorROI オブジェクトの描画に使用する色を設定する
setConstrainedPositionROI オブジェクトに新しい位置を設定する
setLabelTextFormatter距離ツールのテキスト ラベル表示用の書式設定
setLabelVisible距離ツールのテキスト ラベルの可視化設定
setPositionROI オブジェクトを新しい位置に移動
setPositionConstraintFcnROI オブジェクトの位置制約関数の設定
wait(非推奨) ROI の作成が完了するまで MATLAB コマンド ラインをブロックする

メモ

imline を受け付ける各関数は imdistline も受け付けます。これらのオブジェクトは同じように位置を定義します。

イメージへの距離ツールの挿入

イメージに距離ツールを挿入します。距離ツールがイメージの範囲の外側でドラッグされないように、ドラッグの制約関数を指定する makeConstrainToRectFcn を使用します。距離ツールを右クリックして、コンテキスト メニューのオプションを参照します。

imshow('pout.tif');
h = imdistline;
fcn = makeConstrainToRectFcn('imline',...
                              get(gca,'XLim'),get(gca,'YLim'));
setDragConstraintFcn(h,fcn);   

距離ツールの端点位置

指定した位置に距離ツールの端点を配置します。

imshow('pout.tif');
h = imdistline(gca,[10 100],[10 100]);

距離ツールを削除します。

delete(h)

空間参照での距離ツールの使用

ピクセル単位でない関連イメージの XDataYData で距離ツールを使用します。この例では、GeoEye™ が著作所有権を所有する素材を含む Mapping Toolbox™ ソフトウェアの boston.tif イメージを使用します。

start_row = 1478;
end_row = 2246;
meters_per_pixel = 1;
rows = [start_row meters_per_pixel end_row];
start_col = 349;
end_col = 1117;
cols = [start_col meters_per_pixel end_col];
img  = imread('boston.tif','PixelRegion',{rows,cols});
figure; 
hImg = imshow(img);
title('1 meter per pixel');

Harvard Bridge に距離ツールの初期位置を指定します。

hline = imdistline(gca,[271 471],[108 650]);
setLabelTextFormatter(hline,'%02.0f meters');

処理を繰り返します。ただしピクセルあたり 2 m でサンプル イメージを扱います。同じ距離が得られることを検証します。

meters_per_pixel = 2;
rows = [start_row meters_per_pixel end_row];
cols = [start_col meters_per_pixel end_col];
img  = imread('boston.tif','PixelRegion',{rows,cols});
figure;    
hImg = imshow(img);
title('2 meters per pixel');

XDataYData を換算係数を使用して、メートル単位に変換します。

XDataInMeters = get(hImg,'XData')*meters_per_pixel; 
YDataInMeters = get(hImg,'YData')*meters_per_pixel;

イメージの XDataYData を目的の単位を反映するように設定します。

set(hImg,'XData',XDataInMeters,'YData',YDataInMeters);    
set(gca,'XLim',XDataInMeters,'YLim',YDataInMeters);

Harvard Bridge に距離ツールの初期位置を指定します。

hline = imdistline(gca,[271 471],[108 650]);
setLabelTextFormatter(hline,'%02.0f meters');        

ヒント

  • image オブジェクトを含んでいる axes で imdistline を使用し、ドラッグの制約関数を指定しない場合、イメージの範囲外にラインをドラッグすることができます。関数 plot で作成した座標軸を使用すると、座標軸の範囲はラインの動き似合わせて自動的に拡張されます。

R2006a より前に導入