首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中模型路径上的3D切片器视口旋转

python中模型路径上的3D切片器视口旋转
EN

Stack Overflow用户
提问于 2019-06-17 04:50:15
回答 2查看 382关注 0票数 0

我不确定这里是否有3D Slicer开发人员可以提供帮助,但我认为值得一试。我正在开发一个基于内窥镜模块的扩展。内窥镜模块从一组基准点创建路径模型。我正在使用这个路径模型来设置一个垂直于它所遵循的路径的平面视图,然后在其中一个视口中显示该视图。

问题是,有时视图上的平面围绕平面法线(或路径平行)随机旋转,我不确定如何固定,因此方向是静态的。请参阅附件中执行此呈现的算法的代码片段和该问题的屏幕截图。

代码语言:javascript
复制
def reslice_on_path(self, p0, pN, orientation='normal'):
  fx=np.poly1d(np.polyfit([p0[0],pN[0]],[p0[1],pN[1]], 1))
  fdx = np.polyder(fx)
  normal_line = lambda x: (-1/fdx(p0[0]))*(x-p0[0])+p0[1]
  t=np.array([p0[0]+0.00001,normal_line(p0[0]+0.00001),p0[2]], dtype='f')
  t=t-p0
  n=pN-p0
  t.astype(float)
  n.astype(float)
  p0.astype(float)
  sliceNode = slicer.mrmlScene.GetNodeByID("vtkMRMLSliceNodeGreen")
  if orientation == 'normal': orientation = 0
  elif orientation == 'tangent': orientation = 1
  sliceNode.SetSliceToRASByNTP(n[0], n[1], n[2], t[0], t[1], t[2], p0[0], p0[1], p0[2], orientation)
  sliceNode.Modified()

EN

回答 2

Stack Overflow用户

发布于 2019-06-17 05:22:49

在库中有一个用于jupyper笔记本的Volume Slicer选项。

https://plot.ly/python/visualizing-mri-volume-slices/

票数 0
EN

Stack Overflow用户

发布于 2019-06-18 10:08:19

最有可能的问题是,计算曲线法线方向的方式是,当曲线切线方向在某些方向范围之间过渡时,曲线法线方向会翻转。

在3D切片器的最新版本中,有一个专用的曲线节点(vtkMRMLMarkupsCurveNode),它基于Frenet-Serret框架提供一致、平滑更改的曲线切线和法线方向。您可以使用这些说明进行卷重新许可。请参阅详细信息in this post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56622542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档