我的Slicer项目开发经验积累1
Posted inter_peng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Slicer项目开发经验积累1相关的知识,希望对你有一定的参考价值。
本文由Markdown语法编辑器编辑完成.
关于3d Slicer的介绍, 在前面的几篇博文中已经有所介绍. 这篇文章主要分享, 在实际的项目开发中的经验.
Slicer是由很多很多的Module构成的, 这些Module分别承担了不同的应用场景. 因此, 完成一个比较复杂的操作, 一般需要在不同的Module之间手动切换. 这对于需要批量操作或自动化操作, 就带来了很大的不便.
好在, Slicer提供了丰富的接口, 可以通过Python调用底层的接口, 从而实现很多需要手动完成的工作.
以下, 首先会列举出一些常用的, 通过python, 代替手动操作的例子. 然后, 结合一个具体的案例, 介绍一下如何根据自己的项目需求, 来从源码中定位所需要的接口, 并应用到项目实践中.
1. Python常见接口:
3D View
获取3d view窗口中的相机实例
threeDView = slicer.app.layoutManager().threeDWidget(0).threeDView()
renderer = threeDView.renderWindow().GetRenderers().GetFirstRenderer()
camera = renderer.GetActiveCamera()
center = camera.GetFocalPoint()
pos = camera.GetPosition()
viewUp = camera.GetViewUp()
如何设置3d视图中的标准方位(A, P, L, R, S, )
Right = 1 #右视图
Left = 2 #左视图
Superior = 3 #俯视图
Inferior = 4 #仰视图
Anterior = 5 #正视图
Posterior = 6 #后视图
# 设置3d视图的默认方位为正视图
threeDView = slicer.app.layoutManager().threeDWidget(0).threeDView()
viewNode = slicer.app.layoutManager().threeDWidget(0).mrmlViewNode()
fov = viewNode.GetFieldOfView()
threeDView.lookFromAxis(5, fov)
改变/隐藏3d视图右下角的方位标识(orientation marker)
viewNode = slicer.app.layoutManager().threeDWidget(0).mrmlViewNode()
# 隐藏掉方位标识OrientationMarker:0,不显示;1,Cube;2,Human;3,Axes
viewNode.SetOrientationMarkerType(0)
Slice view:
隐藏/显示3个sliceView窗口中的十字光标
viewNodes = slicer.util.getNodesByClass("vtkMRMLSliceCompositeNode")
for viewNode in viewNodes:
viewNode.SetSliceIntersectionVisibility(0)
2. 项目需求提出:
未完待续…
以上是关于我的Slicer项目开发经验积累1的主要内容,如果未能解决你的问题,请参考以下文章
[工作积累] UE4 并行渲染的同步 - Sync between FParallelCommandListSet & FRHICommandListImmediate calls(代码片段