File: multiatlas.in

package info (click to toggle)
cmtk 3.3.1p2%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,524 kB
  • sloc: cpp: 87,098; ansic: 23,347; sh: 3,896; xml: 1,551; perl: 707; makefile: 334
file content (95 lines) | stat: -rwxr-xr-x 2,899 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/sh

##
##  Copyright 2011, 2014 SRI International
##
##  This file is part of the Computational Morphometry Toolkit.
##
##  http://www.nitrc.org/projects/cmtk/
##
##  The Computational Morphometry Toolkit is free software: you can
##  redistribute it and/or modify it under the terms of the GNU General Public
##  License as published by the Free Software Foundation, either version 3 of
##  the License, or (at your option) any later version.
##
##  The Computational Morphometry Toolkit is distributed in the hope that it
##  will be useful, but WITHOUT ANY WARRANTY; without even the implied
##  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
##  GNU General Public License for more details.
##
##  You should have received a copy of the GNU General Public License along
##  with the Computational Morphometry Toolkit.  If not, see
##  <http://www.gnu.org/licenses/>.
##
##  $Revision: 5337 $
##
##  $LastChangedDate: 2014-04-30 13:22:51 -0700 (Wed, 30 Apr 2014) $
##
##  $LastChangedBy: torstenrohlfing $
##

export CMTK_BINARY_DIR=${CMTK_BINARY_DIR:-@CMTK_BINARY_DIR_CONFIG@}

# Check for command line arguments, print help if none given
if test $# -lt 2; then
    echo "Locally-weighted multi-atlas label fusion"    
    echo "USAGE: $0 targetImagePath atlasIntensityImage1 atlasLabelImage1 [[atlasIntensityImage2 atlasLabelImage2] ...]"
    exit 2
fi
 
TARGET=$1
shift

ATLAS_I=""
ATLAS_L=""
while [ "$1" != "" ]; do
    ATLAS_I="${ATLAS_I} $1"
    ATLAS_L="${ATLAS_L} $2"
    shift 2
done

echo ${ATLAS_I}
echo ${ATLAS_L}

tmpdir=`mktemp -d`
echo ${tmpdir}

idx=0
for atlas in ${ATLAS_I}; do
    xfm=${tmpdir}/${idx}.xfm
    ${CMTK_BINARY_DIR}/registrationx --echo --init com --auto-multi-levels 5 --omit-original-data --delta-f-threshold 0.01 --dofs 6,9 --ncc --pad-ref 0 --symmetric -o ${xfm} ${TARGET} ${atlas}
    idx=`expr ${idx} + 1`
done

idx=0
for atlas in ${ATLAS_I}; do
    xfm=${tmpdir}/${idx}.xfm
    ffd=${tmpdir}/${idx}.ffd
    ${CMTK_BINARY_DIR}/warpx --echo --grid-spacing 80 --grid-refine 3 --min-stepsize 0.25 --max-stepsize 16 --smoothness-constraint-weight 1e-1 --omit-original-data --delta-f-threshold 0.01 --fast --nmi -o ${ffd} --initial ${xfm} ${TARGET} ${atlas}
    idx=`expr ${idx} + 1`
done

idx=0
for atlas in ${ATLAS_I}; do
    ffd=${tmpdir}/${idx}.ffd
    out=${tmpdir}/${idx}_i.nii
    ${CMTK_BINARY_DIR}/reformatx --floating ${atlas} --cubic -o ${out} ${TARGET} ${ffd}
    idx=`expr ${idx} + 1`
done

lvote_inputs=""

idx=0
for atlas in ${ATLAS_L}; do
    ffd=${tmpdir}/${idx}.ffd
    out=${tmpdir}/${idx}_l.nii
    ${CMTK_BINARY_DIR}/reformatx --floating ${atlas} --pv -o ${out} ${TARGET} ${ffd}

    lvote_inputs="${lvote_inputs} ${tmpdir}/${idx}_i.nii ${tmpdir}/${idx}_l.nii"

    idx=`expr ${idx} + 1`
done

bin/lvote --echo -o output_${idx}_sba.nii --use-sba --patch-radius 5 ${TARGET} ${lvote_inputs}

rm -rf ${tmpdir}