特定の固定数のポイントでマークする画像が多数あります。(オブジェクト トラッキング) を使用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
少ない引数呼び出しが設定されているときに何をすべきかを定義しようとしました。その中で、どこかからのハンドルが必要になります。
ありがとうございました。