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 会输出什么?
我有以下代码。 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 会输出什么?