ITK-SNAP4.0 windows下源码编译安装
安装流程主要参考了两篇文章:
一个是官方的文档
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
1. 准备
1.1 安装环境
环境为个人使用的环境,可能与实际需要的最低要求不同。
不过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.
1.2 其他软件
除了上述提到的软件,还需要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的源码
1.3 文件夹结构
笔者在安装过程中,一开始很多安装路径和文件存放都是默认存放,导致所有路径都很混乱,第一次安装的过程中多次出错,在二次安装的时候就重新划了一块磁盘出来,把文件路径给弄好,也可以避免安装有遗漏,自己也能更好地去找到一些文件。
在使用cmake编译以上软件的时候可能会出现路径名过长的错误,所以在前期一定要做好路径分类和命名。
可能需要预留较大的空间,我前前后后安装下来可能花了80G左右的空间(QT源码编译安装后占据了大部分),主要是编译后文件量是非常多的。
笔者自己的分类方式如下,可做参考:
2. 前序安装
2.1 vs2019
vs2019的安装注意在组件选择的时候注意把v142tools和cmake相关的组件勾选上。
如果已经安装好了vs2019,就选择
菜单栏 --> 工具 --> 获取工具和功能 --> 单个组件
在这里进行搜索就行
2.2 QT、CURL、VTK、OpenCV的安装
2.2.1 Cmake安装简述
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
- 可能会报错,注意看报错信息,同时把展示的红色参数都进行修改添加,编辑好了再点configure,直到没有红色参数出现且下边框里显示
configuring down
-
configure之后选择generate,出现
generating down
之后点击open project就可以进入工程文件了。 -
进入工程文件后先选择
ALL_BUILD
项目右键生成,生成成功后又选择INSTALL
项目右键生成,这里可能会花费较多的时间。如果都没问题就会在cmake阶段的参数CMAKE_INSTALL_PREIFX
所指向的文件夹进行安装创建bin,include,lib等文件夹。
2.2.2 参数修改提示【重要】
- 【针对所有安装】
- 建议指定安装目录
CMAKE_INSTALL_PREIFX
,默认安装目录在系统盘,直接open project可能遇到权限问题,如果是在系统盘安装,在使用vs打开的时候可能需要用管理员权限打开。
- 建议指定安装目录
- 有个参数叫
BUILD_DOCUMENTS
是创建说明文档的,可以不选择,选择了的话还需要别的软件dxygen才能运行。
-
【针对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
- 【针对OpenCV】
- opencv的构建的时候,需要额外下载opencv_contrib,3.4.14下载地址。下载完成后进行解压,在opencv构建的时候,需要修改参数
OPENCV_EXTRA_MOUDLES_PATH
并将该路径指向解压的contrib文件夹中的modules文件夹
- opencv的构建的时候,需要额外下载opencv_contrib,3.4.14下载地址。下载完成后进行解压,在opencv构建的时候,需要修改参数
- 参数
WITH_VTK
勾选后进行configure,会再提示没有找到VTK_DIR
,所以也要添加这个参数,指向VTK的build文件夹。
在该板块笔者遇到的问题大致是这些,如果之后发现新的问题会继续补充
2.3 ITK安装
编译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项目。
3. ITK-SNAP
3.1 源码获取
从cmd里cd到前面创建的itk-snap文件夹中
git clone --recursive git@github.com:pyushkevich/itksnap.git itksnap
在使用git获取源码的时候可能会遇到could not read from remote repository
,这种直接重新生成一次ssh key并配置一下github账户就行。
3.2 submodules
直接克隆下来的源码里面缺少了submodules,所以还需要获取这个内容。
cd进入到刚刚克隆源码的目录,使用如下命令就行:
git submodule init
git submodule update
3.3 cmake编译
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
3.4 运行
生成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文件夹中。
在解决这个问题之后,也就可以成功运行软件了。