代码运行脑图

每一步的运行过程说明
对灰度和二值图像做插值(该步可以跳过)
插值是为了防止在训练的过程出现错误,所以相对灰度和二值图像做插值运算,插值代码在
UpsampleVolume_char-label和UpsampleVolume_short-img文件夹中。-label作用二值图像,-img作用于灰度图像,使用前需要先ccmake和make一下进行配置和编译,然后将生成的main可执行文件拷贝到需要插值的文件夹中,执行upsample脚本文件就可以进行插值运算来,如果脚本文件不能执行需要先给执行权限,upsample脚本文件内容如下:#!/bin/bash
mkdir upsample_label
for ((a=1; a <= 40; a++))
do
./main label-$a-flip-spleen-roi.nrrd upsample_label/label-$a-flip-spleen-roi-2.nrrd 1 1 2
done
该脚本是作用于二值图像的例子,灰度图像也要重复上述过程。
### 掩码运算掩码的代码在
MASKImage文件夹中,同样使用前需要先ccmake和make一下进行配置和编译,然后执行mask-spleen脚本文件,注意脚本中文件的路径,mask-spleen脚本文件内容如下:#!/bin/bash
for ((a=1; a <= 40; a++))
do
./main spleen-roi/upsample_img/img-$a-flip-spleen-roi-2.nrrd
spleen-label-roi/upsample_label/label-$a-flip-spleen-roi-2.nrrd mask_result-2/img-$a-flip-spleen-masked.nrrd
done
- 如图:
 

开始训练
训练的代码在
atlas_*_UAB文件夹中,先在此文件夹中建build文件夹,并在build中进行配置和编译。执行
mkdir_file脚本,在build中生成必要的文件夹,将elastix、parameters_BSpline.txt、parameters_Affine.txt、transformix这4个文件拷贝到build中,这个很重要!!!将掩码后的nrrd文件拷贝到
training文件夹中,规范命名,将手动挑选的初始模板与第0组交换。执行编译后生成的
asm的文件,如图:
如果运行出错,需要重新下载
elastix和transformix文件,下载方式如下:sudo apt-get install elastix
然后将
/etc/bin中的elastix和transformix文件替换掉原来的elastix和transformix文件,重新执行asm文件。如果数据很多的话,训练过程需要很久,一、两天也有可能,慢慢等吧。
计算图谱
- 在计算图谱之前需要将最后一次迭代矩阵作用于最初的灰度和二值图像,建两个文件夹‘img_txt’、
label_txt分别处理灰度和二值图像。 - 将最后一次训练迭代的矩阵,即最后一次迭代产生的txt文件拷贝到‘img_txt’、
label_txt文件中。 - 执行
mkdir_file脚本,生成必要的文件夹,用g++编译.cpp文件,interpolate0to3.cpp作用于img_txt中的txt,avgTranform.cpp作用于label_txt中的txt.如图:

 - 将最初的灰度和二值图像(nrrd)分别拷贝到‘img_txt’、
label_txt文件中,注意命名方式和将手动挑选的初始模板与第0组交换。 - 执行
update脚本,将txt作用到nrrd上,结果保存在exampleoutput中,如图:
 - 将处理后的
nrrd求平均,得到最终的图谱:avg.nrrd。需要先ccmake和make一下进行配置和编译求平均的代码,得到一个可执行文件main. - 执行
main,传的参数为数据集的个数,如图:
 
通过图谱对原始灰度图像进行分割
- 训练的代码在
MAS_*_UAB_FFD文件夹中,先在此文件夹中建build文件夹,并在build中进行配置和编译。 - 执行
mkdir_file脚本,在build中生成必要的文件夹,将elastix、parameters_BSpline.txt、parameters_Affine.txt、transformix这4个文件拷贝到build中,这个很重要!!! - 将图谱和要分割的原始灰度图像拷贝到
training文件夹,灰度图谱命名:avg.nrrd,二值图谱命名:avg_mask.nrrd,原始灰度图像命名:liver-0.nrrd. - 在MAS文件夹中建一个文件夹用来保存分割后的结果,命名为:
0.注:有多少组原始灰度图像,就需要有多少个保存结果的文件,命名方式依次递增。 - 执行
asm文件进行分割,如图:
 - 最后分割结果保存在
0文件夹中,如图: