1

心臓の CT スキャンがあり、その上に載るデバイスを設計しています。そのため、特定の属性に対して適切な長さを取得することが重要です。CT スキャンは MeshLab でセグメント化され、アドバイザーは、PLY_IO を使用して MeshLab からエクスポートされた ply ファイルを読み取るコードを教えてくれました。これから、私は表面の地図を持っています。surf(Map.X, Map.Y,Map.Z) は 3D モデルを出力します。今、私が理想的に望むのは、図ウィンドウを介してグラフィカルにポイントを選択し、Matlab にポイントが何であるかを教えてもらうか、測地線を描いてその長さを決定できるようにすることです。質問:これを簡単な方法で行う方法を知っている人はいますか?

最終的には、正しい向きで取得できれば、図形に描画するだけでも問題ないかもしれません。ただし、理想的には、始点と終点を選択すると、Matlab がサーフェス上に測地線をグラフィカルに表示し、後でその長さを見つけることができます。このためのプログラミングを行ってみたいと思っていますが、皆さんが既に知っている何かがあることを願っています。

4

1 に答える 1

1

サーフェス上のポイントをインタラクティブに抽出する 1 つの方法は、 を使用することdatacursormodeです。2 つのポイントを取得する方法の簡単な例を次に示します。

surf(peaks);
dcm_obj = datacursormode(gcf);
set(dcm_obj,'DisplayStyle','datatip',...
    'SnapToDataVertex','off','Enable','on')
disp('Select first point then press any key')
pause                           
c_info{1} = getCursorInfo(dcm_obj);
disp('Select second point then press any key')
pause                           
c_info{2} = getCursorInfo(dcm_obj);

ポイントを選択するためにあなた(またはユーザー)がモードを変更した場合(回転ボタンをクリックするなど)、データカーソルモードに戻ってデータカーソルを再度移動する必要があることに注意してください。

ここに画像の説明を入力

サーフェス上の 2 点であるc_info{1}.positionとが必要です。c_info{2}.position測地線の計算は別の問題です。File Exchange を調べて、既に持っているデータの種類に対して機能するものがないかどうかを確認してください。

于 2014-04-29T13:07:44.160 に答える