Dot*_*ass 5 python unix ubuntu imagej simpleitk
编辑注意:这个问题最初的措辞是
如何在 Linux 中将 SimpleITK.Show() 链接到 imageJ?
通过将 SimpleITK 1.0.0 升级到 1.0.1,我能够从 SimpleITK.Show() 启动 ImageJ。但是,ImageJ 无法打开“sample_mri.hdr”。ImageJ 生成以下错误消息。
文件格式不支持,请阅读器
插件不可用,或者未找到。
根/本地/linux/ImageJ/open(“/temp/TempFile-7131-2.nii”);
root/local/linux/ImageJ/rename("/temp/TempFile-7131-2.nii");
我已经为 ImageJ 安装了适当的插件来读取 hdr/img (分析格式)。我可以通过转到 file>open 直接从 ImageJ 打开“sample_mri.hdr”
调试消息:
sitk.Show(img, 'sample image', debugOn=True)
Run Code Online (Sandbox Code Playgroud)
FindApplication 搜索路径:[ ./Fiji.app、/cis/home/vwang/bin/Fiji.app、~/bin/Fiji.app、/opt/Fiji.app、/usr/local/Fiji.app ]
结果:
FindApplication 搜索路径:[ ./Fiji.app、/cis/home/vwang/bin/Fiji.app、~/bin/Fiji.app、/opt/Fiji.app、/usr/local/Fiji.app ]
结果:
FindApplication 搜索路径:[ ./ImageJ、/cis/home/vwang/bin/ImageJ、~/bin/ImageJ、/opt/ImageJ、/usr/local/ImageJ ]
结果:
FindApplication 搜索路径:[ ./, /cis/home/vwang/bin/, ~/bin/, /opt/, /usr/local/ ]
结果:/usr/local/bin/ImageJ
显示命令: '/usr/local/bin/ImageJ' '-e' 'open("/tmp/sample-4434-0.nii"); 重命名(“样本”);'
插件:
如何在 Linux 中将 SimpleITK.Show() 链接到 imageJ?
我已经下载了ImageJ,可以直接运行ImageJ来查看图像。过去曾提出并回答过类似的问题(Can not "link"SimpleITK::Show() with FIJI),但解决方案适用于 Windows 操作系统。unix 的等价物是什么
setx SITK_SHOW_COMMAND "C:\blah\blah\ImageJ\ImageJ.exe
Run Code Online (Sandbox Code Playgroud)
我的Python代码:
import SimpleITK as sitk
img = sitk.ReadImage("sample_mri.hdr")
sitk.Show(img, 'sample image')
Run Code Online (Sandbox Code Playgroud)
错误信息:
return _SimpleITK.Show(*args, **kwargs)
RuntimeError: Exception thrown in SimpleITK Show:
/tmp/SimpleITK/Code/IO/src/sitkShow.cxx:500:
sitk::ERROR: Error in administrating child process: [No such file or directory]
Run Code Online (Sandbox Code Playgroud)
SimpleITK 无法找到 ImageJ。尝试将 debugOn=True 参数添加到 Show 命令中。这将向您显示用于尝试查找 ImageJ 的搜索路径。
所以你的节目将如下:
sitk.Show(img, 'sample image', debugOn=True)
Run Code Online (Sandbox Code Playgroud)
在 Linux 系统上,SimpleITK 搜索以下选项的路径:Fiji.app/ImageJ-linux64、Fiji.app/ImageJ-linux32、ImageJ/imagej、ImageJ 和 imagej。
如果您的 ImageJ 可执行文件被命名为其他名称,SimpleITK 将找不到它。我建议使用软链接以使其可找到,或使用 SITK_SHOW_COMMAND 环境变量。
更新:找不到 ImageJ 是您最初的问题。我不确定您的更新,但设置了 debugOn 标志后,您可以看到 SimpleITK 用于尝试启动 ImageJ 的实际命令行。