0

特定の固定数のポイントでマークする画像が多数あります。(オブジェクト トラッキング) を使用impointして画像上に点を作成し、それらを論理的な方法で相互に接続するようにプロットします。ここまでは順調ですね。次に、(GUIDE を使用して開発した MATLAB GUI で) [次へ] をクリックすると、新しいイメージが軸に読み込まれ、情報が失われます (ポイント)。

  • impoint次の画像のため にプロットを保持するにはどうすればよいですか?
  • impointを移動すると、プロットされた線も移動することを確認するにはどうすればよいですか?

私がまだ回避しなければならないことは次のとおりです。

addNewPositionCallbackポイントの位置の更新にすでに使用していること。このコールバックを記述addNewPositionCallback(H, @fnc);すると、次のような関数呼び出しが発行されます。fnc(pos)

私の問題は、このコールバックがハンドルを提供しないことです。

したがって、ハンドル情報がないと、コード内の正しい要素に対処できません。今のところ、画像にマークする必要がある固定数の18ポイントに対して18個のワンライナー関数を記述したように実装しました。updatestructure(position, 'point_name', handles)これらの関数は、impoint の作成直後に呼び出される同じ関数を呼び出して、それらの間のリンクをイメージ上にプロットします。しかし、ここでもハンドルに関する情報はありません。これが私が試したものです:

pointname = impoint(gca,[]);
setcolor(h,'y');
position = getPosition(h);
updatestructure(position, 'pointname', handles);
addNewPositionCallback(h, @movepointname)

したがって、更新構造が呼び出されると、プロットは正常に機能します。私は私が望むものを見ることができます。しかし、ポイント関数を移動するmovepointname()と、問題が発生します。

function movepointname (smart_pos)
updateStruct (smart_pos, 'pointname');
end

ハンドル情報が転送されていないため、これは確かにエラーを生成しました。vargin少ない引数呼び出しが設定されているときに何をすべきかを定義しようとしました。その中で、どこかからのハンドルが必要になります。

ありがとうございました。

4

3 に答える 3

0

Figure に画像の上に描画するように指示する必要があります。これを行うには、HOLD 機能を使用します。

hold(AXIS_HANDLE, 'on')

ここで、AXIS_HANDLE は軸ハンドルです。Figure に何かをプロットする前に、これを行う必要があります。

軸のセットしかない場合は、呼び出すだけです

hold on

軸を作成した後。

于 2013-05-16T15:43:56.543 に答える