三大步骤:
- 用CMake生成构建文件
- 用Visual Studio编译器编译
- 安装Python模块
下载并安装CMake以后,从git上下载SimpleElastix(https://github.com/kaspermarstal/SimpleElastix)。一定要从git上下载,不要从SimpleElastix的网页上下载zip包。否则会在编译时出现错误:
cl : Command line error D8021: invalid numeric argument '/Wno-long-double' [C:\Si\SimpleITK-build\CMakeFiles\CMakeTmp\cmTC_fa6e6.vcxproj]
仔细看了一下,两个内容是不大一样。zip是源代码。cmakelist也不一样。
在D盘新建一个文件夹,喜欢什么叫什么吧...然后cmake的原文件夹选择git下载的文件夹里的SuperBuild。生成文件夹就是刚才自己新建的文件夹
点configure出现选项:
Python是32位的选择Visual Studio 12 2013。再次点击configure,第一步完成。
打开Visual studio,选择文件->打开项目/解决方案->打开并选择SuperBuildSimpleITK.sln
或者直接文件夹双击SuperBuildSimpleITK.sln
选择release,右键点击ALL_BUILD,生成。等待编译器编译。大概需要4个小时。
编译过程中发生错误:LINK : fatal error LNK1102: out of memory
原因:当我们选择64位编译器时,Visual Studio的目标平台是64位,但是Visual Studio工具链本身默认是32位的。因此,在链接阶段可能发生内存不足的错误。
解决方案:在命令提示符中设置环境变量IsNativeEnvironment=true,然后从命令行调用Visual Studio可执行文件,再进行编译。
set _IsNativeEnvironment=true
start "c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" D:\simEl\SuperBuildSimpleITK.sln
编译完成后在SimpleElastix安装目录下(例如D:\simEl\SimpleITK-build\Wrapping\Python\Packaging)中可以看到setup.py。
运行->cmd,进入安装目录\SimpleITK-build\Wrapping\Python\Packaging,输入python setup.py install,就将python模块安装上了。这时候在python IDLE中输入
import SimpleITK as sitk
resultImage = sitk.Elastix(sitk.ReadImage("fixedImage.nii"), \
sitk.ReadImage("movingImage.nii"), \
"translation")
就可以运行了。如果出现错误
ImportError: No module named '_SimpleITK'或者AttributeError: 'module' object has no attribute 说明没有Python模块没有安装好。
唉,出现这么多问题,真的折腾死。还是google好用。还好了,你遇到的问题基本上别人都遇到过。有错误就一个一个解决。总能搞定的