安装流程主要参考了两篇文章:
一个是官方的文档
http://www.itksnap.org/pmwiki/pmwiki.php?n=Documentation.BuildingITK-SNAP
一个是CSDN上的一篇3.8安装文档
https://blog.csdn.net/diry/article/details/118251252?spm=1001.2014.3001.5506
环境为个人使用的环境,可能与实际需要的最低要求不同。
不过itk-snap为22年6月更新的最新版本,建议都使用当前最新的环境。
均为64位:Python3.9.2 、 vs2019 16.11 community 、 qt6.2.2 、 cmake3.25、 git2.38.1
在安装过程中好像也遇到过一次python版本问题,好像是还需要python2的环境,在准备阶段也可以把python2配置好。
此外,如果是安装的3.8版本,vs需要使用2017,不然在最后编译不会成功,其他相关软件也需要降低版本。此版本itksnap是需要用到itk5.2.1,itk需要qt6,qt6又需要vs2019.
除了上述提到的软件,还需要VTK、 ITK 、cURL 、HDF、 OpenCV 、OpenCL .
笔者个人使用的具体版本如下:
VTK9.1.0、ITK5.2.1、cURL7.86.0、 hdf-1.10.6、 opencv3.4.14、 opencl2020.3.494
(文中使用的部分图像是ITK-SNAP3.8版本对应的软件版本,做参数更改参考即可)
然后就是主角ITK-SNAP4.0的源码
笔者在安装过程中,一开始很多安装路径和文件存放都是默认存放,导致所有路径都很混乱,第一次安装的过程中多次出错,在二次安装的时候就重新划了一块磁盘出来,把文件路径给弄好,也可以避免安装有遗漏,自己也能更好地去找到一些文件。
在使用cmake编译以上软件的时候可能会出现路径名过长的错误,所以在前期一定要做好路径分类和命名。
可能需要预留较大的空间,我前前后后安装下来可能花了80G左右的空间(QT源码编译安装后占据了大部分),主要是编译后文件量是非常多的。
笔者自己的分类方式如下,可做参考:
vs2019的安装注意在组件选择的时候注意把v142tools和cmake相关的组件勾选上。
如果已经安装好了vs2019,就选择
菜单栏 --> 工具 --> 获取工具和功能 --> 单个组件
git cmake python hdf5 opencl这些都是下载后直接点击setup一步步安装在此就不赘述了。
接下来的安装过程最好是按照QT-> CURL -> VTK -> OpenCV -> ITK -> ITK-SNAP的顺序来进行安装,主要是因为VTK需要QT的路径,OpenCV里的参数需要填VTK的目录,ITK的参数需要QT、VTK和OpenCV的目录,ITK-SNAP需要QT、CURL、VTK、OpenCV、ITK的路径。
Cmake安装流程也很简单(以curl为例):
这里先示范Cmake的用法和安装流程,具体的参数在这个小部分之后有,要结合具体参数更改来进行其他项目的安装
where is the source code
一栏选择源码所在的目录,也就是有cmakelist.txt
文件的那个文件夹。where to build the binaries
:选择刚刚创建好的build目录,configure的内容会存到这个目录里去configure
, 第一次configure的时候需要选择generator
4. 可能会报错,注意看报错信息,同时把展示的红色参数都进行修改添加,编辑好了再点configure,直到没有红色参数出现且下边框里显示 configuring down
configure之后选择generate,出现generating down
之后点击open project就可以进入工程文件了。
进入工程文件后先选择ALL_BUILD
项目右键生成,生成成功后又选择INSTALL
项目右键生成,这里可能会花费较多的时间。如果都没问题就会在cmake阶段的参数CMAKE_INSTALL_PREIFX
所指向的文件夹进行安装创建bin,include,lib等文件夹。
【针对VTK、ITK、ITK-SNAP】
VTK和ITK安装的时候可能需要在参数中选择qt版本,并添加参数CMAKE_PREFIX_PATH
,参数指向QT安装目录的cmake模块,例如G:\TK\QT\QT-install\QT6.2.2\msvc2019_x64\lib\cmake
QT5的5.5之后,qt移除了Qtwebkitwidgets
,并用webenginewidgets
替代,所以如果在cmake过程中有红色的参数提示没有找到这个文件夹(即报错Qt5WebKitWidgets),就需要自己去下载Qtwebkitwidgets
模块并放到该文件夹里,再手动配置该参数。下载地址在这
【针对VTK】除此之外,VTK的参数还有以下几个需要指定
VTK_GROUP_ENABLE_Qt
: YES
VTK_MODULE_ENABLE_VTK_GUISupportQtQuick
: NO
VTK_MODULE_ENABLE_VTK_GUISupportQtSQL
: NO
VTK_REQUIRED_OBJCXX_FLAGS
: an empty string
Module_vtkGUISupportQT
: YES
在该板块笔者遇到的问题大致是这些,如果之后发现新的问题会继续补充
编译itk的步骤和前面几个基本是一致的,单独放过来是因为itk的参数里面可能需要填写qt、vtk、opencv的路径。
ITK的安装也应该在QT、VTK、OpenCV全部生成成功且INSTALL项目运行成功后。
参数:
Module_MorphologicalContourInterpolation
: TRUE
ITKVtkGlue
勾选
OpenCV_DIR
选择opencv的build文件夹
ITKOpenJPEG
勾选
ITKVideoBridgeOpenCV
勾选
新建CMAKE_PREFIX_PATH
参数,,参数指向QT安装目录的cmake模块,例如G:\TK\QT\QT-install\QT6.2.2\msvc2019_x64\lib\cmake
建议更改CMAKE_INSTALL_PREFIX
路径,即自定义安装路径
以上参数更改后进行configure,会提示一些DIR路径没有找到
VTK_DIR
OPENCV_DIR
通过cmake构建生成后打开vs进行ALL_BUILD就行,再运行INSTALL项目。
从cmd里cd到前面创建的itk-snap文件夹中
git clone --recursive [email protected]:pyushkevich/itksnap.git itksnap
在使用git获取源码的时候可能会遇到could not read from remote repository
,这种直接重新生成一次ssh key并配置一下github账户就行。
直接克隆下来的源码里面缺少了submodules,所以还需要获取这个内容。
cd进入到刚刚克隆源码的目录,使用如下命令就行:
cd ITK-SNAP-src
git submodule init
git submodule update
cmake的过程和前面的基本一样,也主要是注意几个参数的修改
CMAKE_INSTALL_PREFIX
: 自定义为自己的安装目录
CMAKE_PREFIX_PATH
: 添加这个参数,指向QT安装目录里的cmake模块
CURL_DIR
ITK_DIR
VTK_DIR
OpenCV_DIR
可能都需要设定一下,定位到``build`目录就行
有可能还会遇到qt相关的参数,qt版本选择我们安装的6就行,然后部分qt模块没找到文件夹的,参考找到的路径去对应目录下找就行
完成configure后点generate接着open project
生成ALL_BUILD,
可能会遇到几个错误,笔者遇到的其实就是字符转码问题,有引号的缺失,根据错误提示找到对应的文件,把错误字符删去补充正确的引号就行。
接着把ITK-SNAP 右键设置为启动项,运行这个项目就行。
要想运行成功,可能需要把 Opencv, itk, vtk, curl 的build\bin\debug目录下的 dll文件拷贝到 itk-snap-build\Debug 目录下。
然后笔者遇到一个比较久的错误就是一直报错LNK2019
找不到curl的相关函数。
解决方案:
右键项目属性–>链接器–>输入 :在该界面的附加依赖项里面去添加libcurl-d_imp.lib
文件,这个文件应该是在curl的build文件夹下lib/debug文件夹中。