三维条件随机场 ( dense CRF ) 分割MRI图像 (二)
这是第二部分,如果cmake和ITK成功的编译了我们就可以正式的安装和使用三维的dense CRF 条件随机场了。再次赘述,这篇文章并不是要告诉大家复杂的条件随机场的数学原理,或者如何从源码编写crf程序,而是如何告诉大家如何使用别人已经写好的的工具去使用三维CRF分割三维的图像,其中主要是MRI图像的分割。环境是linux环境,ubuntu 16.04 server版本没有图形界。文章主要分为.
这是第二部分,如果cmake和ITK成功的编译了我们就可以正式的安装和使用三维的dense CRF 条件随机场了。再次赘述,这篇文章并不是要告诉大家复杂的条件随机场的数学原理,或者如何从源码编写crf程序,而是如何告诉大家如何使用别人已经写好的的工具去使用三维CRF分割三维的图像,其中主要是MRI图像的分割。环境是linux环境,ubuntu 16.04 server版本没有图形界。
文章主要分为两部分:
第一个是软件环境的配置,主要是ITK的安装测试
第二是CRF的安装
首先我们建立文件夹存放原始的代码,比如使用
git clone https://github.com/Kamnitsask/dense3dCrf.git
或者下载成zip格式的文件再进行解压缩。进入dense3dCrf之后,我们建立一个叫做build的文件夹用于编译。
mkdir build
cd build
cmake ..
make
编译成功之后,可以运行自带的例子检测编译是否成功
./applicationAndExamples/dense3DCrfInferenceOnNiis -c ../applicationAndExamples/example/configFileDenseCrf3d.txt
当最后输出如下信息的时候,就算是执行成功了。
随后我们可以通过更改configFileDenseCrf3d.txt 中的内容运行自己的三维的dense CRF的程序了。下面我们就讲一下各个参数的设置。
-numberOfModalitiesAndFiles
2
../applicationAndExamples/example/img_t1.nii.gz
../applicationAndExamples/example/img_t2.nii.gz
该参数用于确定输入的模态和不同模态数据存储的位置。如果是两个模态输入的话,如MRI的t1和t2输入则,需要准备两个独立的.nii.gz 或者.nii文件。一个输入的话就改成1然后下面写一行。
-minMaxIntensities
-0
+1
对于输入数据的最大值和最小值也是要指明的,可以将输入的原始数据归一到0到1之间,或者计算下自己数据的最大值和最小值,并且填写在这里。
-numberOfForegroundClassesAndProbMapFiles
1
../applicationAndExamples/example/lesionProbMap.nii.gz
除了原始图像,我们还需要给出一个先验的概率,这个通常是别的方法的分割的概率,记住,这里只需要前景的概率也就是比如分割海马体,那么就只需要知道体素是海马体的概率,不需要背景的,如果是多个类别的分割,需要用多个.nii或者.nii.gz文件放不同类别的概率。
-imageDimensions
3
230
230
154
这里指明图像有几个维度,后三个数字是各个维度的尺寸。
-outputFolder
../applicationAndExamples/example/results/
这里设置输出的目录位置。
其他的参数就根据大家自己的实验情况自己设定了,值得一说的有还有一个参数就是
-bMods
4.5
3.5
这里bMods的数值个数和输入模态的数量是一致的,如果是单模态,这里只有一个数值,两个模态输入的话就是两个数值。
最后既阻碍输出的文件夹里找输出文件就好,输出的文件包括对整个图像的分割结果,以及各个类别单独的结果。比如分割为三类的话,在分割结果中就有四个数字0,1,2,3其中0代表背景。
更多推荐
所有评论(0)