【问题标题】:Geodesic on Matlab PLY Surface MeshMatlab PLY 表面网格上的测地线
【发布时间】:2014-06-14 19:28:02
【问题描述】:

我有一个心脏的 CT 扫描,我正在设计一个放在它上面的设备。因此,为某些属性获得正确的长度很重要。 CT 扫描在 MeshLab 中进行分段,我的顾问给了我使用 PLY_IO 读取从 MeshLab 导出的层文件的代码。由此,我得到了表面地图。 surf(Map.X, Map.Y,Map.Z) 输出 3D 模型。现在,我最理想的是能够通过图形窗口以图形方式选择点,并让 Matlab 告诉我这些点是什么,或者让我画一条测地线来确定它的长度。 问题:有人知道我可以如何以简单的方式做到这一点吗?

最终,如果我能把它放在正确的方向上,那么仅仅在图上画画也可以。不过,理想情况下,我会选择起点和终点,然后 Matlab 会在表面上以图形方式显示测地线,我稍后可以找到它的长度。我愿意为此做一些编程,但希望你们可能已经知道了一些东西。

【问题讨论】:

  • 小心“......希望你们可能已经知道一些事情”之类的陈述。这非常接近“关闭原因”,因为您需要找到自己喜欢的工具和库。不要个人认为。 Stack Overflow 尝试专注于有针对性的问题和答案。允许对 <favorite tool X><favorite library Y> 发表意见不符合网站的目标。

标签: matlab shortest-path meshlab geodesic-sphere ply-file-format


【解决方案1】:

在表面上交互式提取点的一种方法是使用datacursormode。下面是一个如何获得两分的简单示例:

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);

请注意,如果您(或用户)更改模式(例如通过单击旋转按钮)以选择点,则必须切换回数据光标模式才能再次移动数据光标:

您现在应该有c_info{1}.positionc_info{2}.position,它们是表面上的两个点。计算测地线是另一回事 - 看看文件交换,看看周围是否已经有任何东西可以为你已经拥有的数据类型完成这项工作。

【讨论】:

    猜你喜欢
    • 2013-11-01
    • 2013-05-04
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多