作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
ITK是什么?
ITK( Insight Segmentation and Registration Toolkit)是美国国家卫生院下属的国立医学图书馆开发的一款医学图像处理软件包,是一个开源的、跨平台的影像分析扩展软件工具。
ITK的开发过程中采用了先进的多模态数据分割配准算法,用于处理图像配准和分割的问题。 ITK是用C++实现的,能够跨平台,并用CMake来管理编译过程来保证编译过程独立于平台。除此以外,它还使用一种叫做卷的处理过程,来产生C++和其他解释程序之间的接口,从而使得开发者能用各种不同的程序语言来开发。
ITK的C++执行风格是基于泛型(generic programming)编程,也就是说他使用的是模板来保证相同的代码能广泛的应用于任何类或者类型。这种C++模板的方式使得编码过程很高效,并且使 很多软件的问题在编译的时候就发现了,而不是在运行的时候。
由于ITK 是一个开源的工程,因此来自世界各地的开发者都可以使用、调试、维护以及扩展这个软件。ITK使用一种叫做极限编程的思想来开发的。极限编程颠覆了传统软件编程的思想,它采用不断同时反复的进行设计-执行-测试-发布的过程。极限编程的核心特征是交流和测试。
下载与编译
1)网站:Download ITK - ITK's documentation,下载ITK压缩包。
我下载的版本是5.3,百度云地址:
链接:https://pan.baidu.com/s/1nyVdlsbxjRq1P9_elkmdJQ
提取码:thvq
2)解压后如下图所示,还需要用CMake进行编译。
CMake安装和配置参考:https://zhaitianbao.blog.csdn.net/article/details/120222654
3)安装好CMake后,按Win+R打开运行,输入cmd打开命令运行窗,输入cmake-gui,中间无空格,会出现cmake界面。source输入ITK的文件路径,build可以在其路径下创建个build文件夹,如下图所示。勾选advanced。
4)点击configure配置,我是vs2017 x64,点确定就开始运行了。
5)configure第一次后应该要进行一次配置。BUILD_SHARED_ILBS打钩,为了后面生成库;CMAKE_INSTALL_PREFIX设置生成库的路径,建议是在ITK目录下创建个bin文件。
6)然后再次点击configure,只要有红色就再点,等没有红色后点击generate,生成完毕后build文件如下所示。点击sln进入项目。
7)进入build文件夹,点击sln项目工程文件;选中ALL_BUILD,选择release/debug,再点击生成ALL_BUILD,此时会进行一段时间的编译操作;再选中INSTALL,点击仅生成,等待结束去看之前设置的bin文件夹,分别是DLL、头文件和LIB。
8)至此,ITK库的编译已经结束。
配置与测试
1)编辑环境变量,输入bin文件路径。
2)创建一个VS项目,可以单项目配置也可以全局配置,我喜欢每个项目独立开,各配置各的,就这样演示了。在项目设置中,包含目录中放include路径,库目录放lib路径。
3)链接器-输入-附加依赖项和lib名字全放进去,因为名字太多,可以找到lib目录,在路径框里输入cmd,这样可以快速定位到当前位置,然后输入下方命令,即可快速获取lib的名字排列。
dir /b *.lib>out.txt
4)dll、头文件和lib都配置好了,我在测试时发现了一个小问题,就是之前include生成的头文件不在下级目录,而在下下级目录,可以手动把它们复制到下级目录,不然前面包含目录的路径就不对应了。
5)接下来,开始测试,输入下方代码,看看VS有没有异常提示,如果没有就直接运行,就ok啦。
#include <iostream>
#include <itkImage.h>
using namespace std;
int main()
{
typedef itk::Image<unsigned short, 3> ImageType;
ImageType::Pointer image = ImageType::New();
cout << "ITK Hello World !" << endl;
return 0;
}
已编译好的库
百度云地址:
链接:https://pan.baidu.com/s/15GWf32-b2JWOo0vvx2IlWQ
提取码:29pc
ITK和OpenCV一样都是做图像处理的,不过OpenCV更通用,ITK更侧重于医学领域,目前我刚加入医学领域,还有很多要学习的地方,有方便分享和记录的内容我会同步更新。
以上就是“Windows下用CMake编译ITK及配置测试”的过程。
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!