代码运行脑图
每一步的运行过程说明
对灰度和二值图像做插值(该步可以跳过)
插值是为了防止在训练的过程出现错误,所以相对灰度和二值图像做插值运算,插值代码在
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
文件夹中,如图: