前几天一直纠结如何用VS2005,ITK3.0.0读取mnc格式的图片.由于早期版本的ITK没有mnc格式图片的接口,因此使用了http://www.insight-journal.org/browse/publication/88下载的读取mnc格式图片的程序,之后开始了漫长的安装道路。现在来总结一下。
MINC是Medical Imaging NetCDF的缩写,最开始是NetCDF文件格式的一个特例,之后由于MINC1的格式存在大小、存储限制,因此进化成了MINC2,这个格式需要一个新的文件格式库来支持,就是HDF5.具体的内容可以参考MINC 2.0 Programmer's Reference Manual.因此使用MINC2.0首先要安装几个库,hdf5、minc、netCDF、szip和zlib。
安装过程是基于VS2005和win7系统的。
(1)下载库,我用的版本分别是hdf5-1.8.4,minc2.0,netCDF-3.5.0,szip-2.1,zlib-1.2.3。
hdf5-1.8.4:http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.4-patch1/obtain5184p1.html
minc2.0:http://packages.bic.mni.mcgill.ca/win32/minc-2.0.15_SEP04_08.exe;http://packages.bic.mni.mcgill.ca/win32/minc-2.0.11.exe
netCDF-3.5.0:http://www.gfd-dennou.org/arch/ucar/netcdf/contrib/win32/
szip-2.1:http://www.hdfgroup.org/ftp/HDF5/prev-releases/hdf5-1.8.4-patch1/bin/win32-vs2005/
(2)安装各个库,下载的基本是已经编译好的文件,所以可以直接将.h文件和.lib文件包含到VS2005 options中的C++ directories中即可。
(3)新建项目,将最开始下得MINC2的IO文件以及Test文件加入工程中,之后,在项目的properties->Linker->Input->Additional Dependencies中添加所有的库文件:itkgdcm.lib minc2.lib szlibdll.lib volume_io2.lib hdf5dll.lib ITKAlgorithms.lib ITKBasicFilters.lib ITKCommon.lib MSVCRTD.lib LIBCMT.lib ITKDICOMParser.lib ITKEXPAT.lib ITKFEM.lib ITKIO.lib itkjpeg8.lib itkjpeg12.lib itkjpeg16.lib ITKMetaIO.lib ITKniftiio.lib ITKNrrdIO.lib ITKNumerics.lib itkopenjpeg.lib itkpng.lib ITKSpatialObject.lib ITKStatistics.lib itksys.lib itkTestDriver.lib itktestlib.lib itktiff.lib itkv3p_netlib.lib itkvcl.lib itkvnl.lib itkvnl_algo.lib itkvnl_inst.lib itkzlib.lib ITKznz.lib netcdf.lib libszip.lib hdf5.lib hdf5_cpp.lib hdf5_f90cstub.lib hdf5_fortran.lib hdf5_hl.lib hdf5_hl_cpp.lib hdf5_hl_f90cstub.lib hdf5_hl_fortran.lib snmpapi.lib rpcrt4.lib wsock32.lib zdll.lib zlib.lib
(4)编译运行即可。运行时可以使用命令行调用,参数只需要输入输入图等,具体的可以参考程序。程序中有一些动态数组定义的问题,可以参考源网站中的评论,有修改的帮助。