SimpleITK 无法显示图像

SimpleITK cannot show image

我有以下代码。 print(image.GetDimension()) 工作并打印输出 (512, 512, 17)。但是 sitk.Show(image) 不起作用。

我的代码

import SimpleITK as sitk

path = "C:/Users/myUserName/Desktop/0001.DCM"
image = sitk.ReadImage(path)

print(image.GetDimension())
sitk.Show(image)

我的错误信息是:

RuntimeError: Exception thrown in SimpleITK Show: D:\a\sitk\Code\IO\src\sitkImageViewer.cxx:562:
sitk::ERROR: Error in administrating child process: [Access is denied].
Command line: 'C:\Users\myUserName\Fiji.app' 'C:\Users\myUserName\AppData\Local\Temp\TempFile-21536-2.mha' 

我该如何解决?我已经解压缩 ImageJ 并将 Fiji.app 文件夹放在 C:\Users\myUserName\Fiji.app。 DICOM 图像 0001.DCM 没有问题,因为我可以通过一些在线 DICOM 查看器查看它。我在 Spyder 中使用 Windows 10 和 运行 我的 Python 代码。提前致谢!

尝试将 SITK_SHOW_COMMAND 设置为直接指向 ImageJ 可执行文件。对于 Fiji 的安装,环境变量应设置为 C:\Users\myUserName\Fiji.app\ImageJ-win64.exe.

好的,这是我对您的脚本稍作修改的版本:

import SimpleITK as sitk

#path = "C:/Users/myUserName/Desktop/0001.DCM"
path = "C:\SimpleITK-build\SimpleITK-build\ExternalData\Testing\Data\Input\DicomSeries\Image0075.dcm"
image = sitk.ReadImage(path)

print(image.GetDimension())
sitk.Show(image, debugOn=True)

唯一的区别是我在 Show 的调用中添加了 debugOn 标志。

这是我的输出:

Debug: In D:\bld\libsimpleitk_1627514864077\work\Code\IO\src\sitkImageViewer.cxx, line 495: ExecuteCommand: 'C:/Users/dchen/Fiji.app/ImageJ-win64.exe' '-eval' 'open("C:\Users\dchen\AppData\Local\Temp\TempFile-10808-0.mha"); rename("C:\Users\dchen\AppData\Local\Temp\TempFile-10808-0.mha");'


Debug: In D:\bld\libsimpleitk_1627514864077\work\Code\IO\src\sitkImageViewer.cxx, line 576: Done.  Deleting process.

并且您可以准确地看到 SimpleITK 正在执行调用 Fiji 的命令。特别是,正在启动的程序是 'C:/Users/dchen/Fiji.app/ImageJ-win64.exe'.

如果打开 debugOn 标志,SimpleITK 会输出什么?