*推荐搜索关注微信公众号:医影杂记
使用Anaconda搭建SimpleITK开发环境
很多采用C++进行医学图像处理编程的同学都会选择ITK来作为底层图像处理的函数库。ITK是一个开源的C++代码库,包含了大量的最新医学图像分割和配准基础函数和通用框架。简单来说,使用ITK,大家可以直接站在一大批国际大牛的肩上来进行开发。然而,要想搭建起一套基于ITK的C++开发环境,需要先做一系列的准备工作。这些工作包括:下载ITK源代码,使用CMake生成工程文件,编译生成Library文件,使用CMake搭建自己的图像处理工程等。然后,才能开始编写C++代码,调用ITK,执行图像处理任务。整个过程对于C++编程水平要求很高,也很耗费时间。很多同学就是被这些准备工作卡住,半途放弃。
而如果采用Matlab,则完全不同了。安装上Matlab,记得安装Image Processing Toolbox等需要的工具箱。然后,就可以开始直接编写代码了。可以说,Matlab能够让你更加专注于图像处理本身的开发,不会被编译环境等琐事分散精力。但是,Matlab虽然也提供了大量的图像处理底层函数,但在专业的医学图像处理,尤其是三维图像处理和分析领域,ITK所包含的函数要比Matlab丰富和领先的多。
那么,有没有两全其美的办法,即能够享受ITK中大量的医学图像处理函数,又可以像使用Matlab那样简单而愉快的编程呢?
答案是:有。具体来说,是采用Python来调用SimpleITK进行开发。
SimpleITK是一个基于ITK内核的Python封装层,它提供了基于Python语言的各项功能调用接口。大家都知道,Python语言以简单易用著称,和Matlab一样,Python的突出特点之一就是能够让人专注在要解决的任务和问题本身上,而不是语法和编译设置等干扰项上。
那么,怎么才能够在Python开发环境中调用SimpleITK呢?
理论上,想要在Python中调用SimpleITK,只需要在命令行窗口中,使用下述命令,安装SimpleITK包就可以了。
pip install SimpleITK
但是这篇文章却非要使用Anaconda(https://www.continuum.io/)来搭建SimpleITK开发环境,为什么非要这么麻烦呢?
原因有如下几点:
由于存在版本兼容性问题,使用pip install,可能无法正确安装SimpleITK。
想借这个机会,尝试和学习一Anaconda这个久闻大名的强大开发环境。
医学图像处理开发,还涉及到矩阵运算、图像显示、图表绘制等其他工作,需要一堆其他的Python模块,而Anaconda作为面向科学数据计算和可视化的集成环境,已经内置了绝大部分相关库。
工作需要,往往需要在Python2和Python3直接切换,有了Anacoda,版本切换从此不是事儿啊。
好吧,铺垫的废话终于说完了。下面开始说正事,如何安装Anaconda和SimpleITK?
正文开始:
下载Anaconda(https://www.continuum.io/downloads/)
安装Anaconda
以管理员身份启动DOS命令行窗口,输入并执行
conda install -c simpleitk simpleitk=1.0.0
正文完毕。
这正文也太短了吧?嗯,是有些短。好吧,再来个详细版。
下载地址 :(https://www.continuum.io/downloads/)
本文基于Win7 64位系统上,因此下载的Python 3.6 Windows 64位版本,Anaconda3-4.3.1-Windows-x86_64.exe
(https://repo.continuum.io/archive/Anaconda3-4.3.1-Windows-x86_64.exe)。
Anaconda安装
安装过程没有太多需要介绍的,基本是缺省选项,一路Next到底。
*备注:关于Anaconda的简单教程,请戳这里
在Anaconda中安装Python Package,一般以此采用下述步骤:
1. 使用conda search 命令,查找anaconda自带的安装包中是否包含了想要的package
conda search SimpleITK
输出结果如下:
也就是没有找到啦。
2. 上Anaconda.org网站上搜索。
需要首先在这个网站上注册用户(注册过程略)。
然后,进入下述页面,在箭头标记的位置属于想要查找的package名称。
搜索结果如下图所示,可以看到,找到了很多个符合的安装包。选择下载次数最多,版本最新的那一个,也就图点击下图中箭头所示位置啦。
打开下述页面,显示这个package的详细信息。注意,箭头所示的区域,给出了相应的安装命令。
3. 拷贝上面的命令,以管理员身份打开一个DOS命令行窗口(建议同时运行fan qiang软件),粘贴并运行。
conda install -c simpleitk simpleitk=1.0.0
正确的运行结果如下图所示:
敲黑板,划重点啦,需要fan qiang安装。否则,可能出现下载安装包失败。如下图:
4. 启动Jupyter QT Console,测试是否能够导入SimpleITK 。
只要不报错,就说明安装正确了。大家可以愉快的在Python开发环境中调用ITK中的各项图像处理功能了。
在上面的安装过程中,涉及到了两项问题,值得补充说明。
作为Anaconda的主要优势之一,开发人员可以在Anaconda中创建和切换不同的开发环境。这里的开发环境,简单来说,是指不同的Python版本和不同的Python package版本的组合。关于Anaconda中开发环境的创建和切换,这里不做介绍了,大家参考这里的简介。需要说明的是,上面的安装步骤是把SimpleITK直接安装到了当前缺省的root开发环境。
加入已经创建了一个名称为ImgPro的开发环境,并且想把SimpleITK安装到这个环境中,则需要在DOS命令行窗口中执行下述代码:
conda install --name ImgPro -c simpleitk simpleitk=1.0.0
下面的图片是在DOS命令行窗口中输入conda install -c simpleitk simpleitk=1.0.0后的安装过程结果截屏。
大家有没有注意到红色标记框中的文字?它实际告诉我们,为了能够兼容安装SimpleITK,Anaconda把Python的版本从3.6.1降到了3.6.0。通过这个例子,我们看到,Anaconda确实能够检测和调整适应不同安装包之间的兼容性。
以上就是这篇小文章想要和大家分享的内容。也希望大家都能够找到最适合自己的图像编程工具,能够专注于算法,而不是编译和工程设置等任务上。