如何勾画好靶区再导出为dicom

软件版本:4.11.20210226
问题描述:各位老师好,我想对肿瘤靶区和肺组织进行勾画,用segment editor勾画好后,如何将勾画好的图像再次输出为dicom格式

勾画的Segment需要在data模块中鼠标右键进行标签图的转换,之后标签图在输出为dicom格式,同样也是在data模块中选中标签图后,鼠标右键点击转换输出为dicom格式。

曹老师,我勾画好了靶区,还是不能输出为勾画后的dicom图像。
image

曹老师,我通过Export to Dicom 导出的图像显示是这样的,只有在这个窗宽窗位下勉强能看的清。

调节窗宽窗位就看清了,正确的输出,并不是带有颜色的,只是黑白的二进制图像,0和1,黑和白。

能不能导出非二进制的图啦,就是说,导出segment对应的原始dicom,非segment区域的不显示,或定义HU/灰度无或0

在Segment Editor模块中,利用mask Volume模块即可利用分割结果对Volume进行剪切,达到你说的效果。


老师你好,我用上面的方法导出图1。其他人导出结果如图二

我要怎么做可以像图二一样?
谢谢!

应用上面的步骤将分割导出为DICOM格式即可。

尝试了确实可以,不过需要手动调节窗框窗位才行。
有什么设置方法可以让它输出时就是这样吗?

载入之后执行下面的代码,之后再重新输出为DICOM格式即可。

# 导入3D Slicer模块
import slicer

# 获取第一个Volume节点
inputVolume = slicer.mrmlScene.GetFirstNodeByClass('vtkMRMLScalarVolumeNode')

# 确保Volume节点存在
if inputVolume is None:
    print("未找到有效的Volume节点,请确保已加载正确的数据。")
else:
    # 获取Volume的显示节点
    displayNode = inputVolume.GetDisplayNode()
    
    # 设置窗宽和窗位为0
    if displayNode:
        displayNode.SetWindow(0)  # 设置窗宽为0
        displayNode.SetLevel(0)   # 设置窗位为0
        print("已成功将窗宽和窗位设置为0。")
    else:
        print("未找到显示节点,无法设置窗宽和窗位。")

代码解释

  1. 获取Volume节点:从场景中选择第一个vtkMRMLScalarVolumeNode类型的节点。
  2. 检查节点有效性:如果Volume节点未找到,输出提示信息。
  3. 获取显示节点:调用GetDisplayNode()获取显示节点,用于调整窗宽和窗位。
  4. 设置窗宽和窗位为0:调用SetWindow(0)SetLevel(0)将窗宽和窗位设置为0。
  5. 操作完成提示:如果设置成功,输出“已成功将窗宽和窗位设置为0”。

注意事项

  • 此操作将使Volume显示为黑色白色对比色,仅适用于需要将图像隐藏或调整图像对比度的情况。
  • 在执行代码之前,请确保场景中已加载正确的Volume数据。
1 Like

非常感谢老师,我补充一下步骤:
在3D Slicer中执行代码的步骤如下:

  1. 打开Python交互控制台
  • 在3D Slicer界面中,点击菜单栏的“View”。
  • 选择“Python Interactor”以打开Python交互控制台。
  1. 执行代码
  • 在Python交互控制台中,输入或粘贴老师提供的代码。
  • 按下回车键执行代码。
  1. 重新导出为DICOM格式
  • 在3D Slicer中,调整窗宽窗位后,使用“DICOM”模块进行导出。
  • 确保导出设置正确,以保存调整后的图像。
1 Like