1. 程式人生 > >SimpleElastix安裝及所遇問題(windows)

SimpleElastix安裝及所遇問題(windows)

三大步驟:

  1. 用CMake生成構建檔案
  1. 用Visual Studio編譯器編譯
  1. 安裝Python模組
看著這三步和把大象裝冰箱分幾步一樣簡單。然並簡。在安裝SimpleElastix前確認Python3.4已經安裝。

下載並安裝CMake以後,從git上下載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好用。還好了,你遇到的問題基本上別人都遇到過。有錯誤就一個一個解決。總能搞定的