我有以下代码。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\1\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查看器来查看它。我正在使用Windows 10,并在Spyder中运行Python代码。提前感谢!
发布于 2021-10-21 20:12:56
尝试将SITK_SHOW_COMMAND设置为直接指向ImageJ可执行文件。对于斐济的安装,环境变量应该设置为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)唯一的区别是,我将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正在执行的调用斐济的命令。特别是,正在启动的程序是‘C:/User/dchen/fiji.app/ImageJ-win64.exe’。
如果打开debugOn标志,SimpleITK输出什么?
https://stackoverflow.com/questions/69653135
复制相似问题