这是第二部分,如果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代表背景。

Logo

更多推荐