]> Creatis software - FrontAlgorithms.git/blob - appli/CTBronchi/Process.sh
...
[FrontAlgorithms.git] / appli / CTBronchi / Process.sh
1 #!/bin/bash
2
3 ## -- Command line options
4 curr_dir=`dirname $0`
5 ext="mhd"
6 vesselness_sigma="0.5"
7 vesselness_alpha1="0.5"
8 vesselness_alpha2="2"
9 mori_min_thr="-850"
10 mori_kernel="20"
11 mori_signal_thr="100"
12 mori_signal_influence="0.5"
13 mori_lower="-1024"
14 mori_upper="0"
15 mori_delta="1"
16 slice_by_slice_vesselness_thr="5"
17 fast_vesselness_thr="65"
18 labels_upper_thr="-400"
19 beta="2.5"
20 epsilon="1e-5"
21 while [[ "$#" -gt 0 ]]; do
22     key="$1"
23     case $key in
24         -input)
25         input=`realpath $2`
26         shift
27         ;;
28         -force)
29         force="1"
30         ;;
31         -vesselness_sigma)
32         vesselness_sigma="$2"
33         shift
34         ;;
35         -vesselness_alpha1)
36         vesselness_alpha1="$2"
37         shift
38         ;;
39         -vesselness_alpha2)
40         vesselness_alpha2="$2"
41         shift
42         ;;
43         -mori_min_thr)
44         mori_min_thr="$2"
45         shift
46         ;;
47         -mori_kernel)
48         mori_kernel="$2"
49         shift
50         ;;
51         -mori_signal_thr)
52         mori_signal_thr="$2"
53         shift
54         ;;
55         -mori_signal_influence)
56         mori_signal_influence="$2"
57         shift
58         ;;
59         -mori_lower)
60         mori_lower="$2"
61         shift
62         ;;
63         -mori_upper)
64         mori_upper="$2"
65         shift
66         ;;
67         -mori_delta)
68         mori_delta="$2"
69         shift
70         ;;
71         -slicebyslice_vesselness_thr)
72         slicebyslice_vesselness_thr="$2"
73         shift
74         ;;
75         -fast_vesselness_thr)
76         fast_vesselness_thr="$2"
77         shift
78         ;;
79         -slice_by_slice_vesselness_thr)
80         slice_by_slice_vesselness_thr="$2"
81         shift
82         ;;
83         -labels_upper_thr)
84         labels_upper_thr="$2"
85         shift
86         ;;
87         -beta)
88         beta="$2"
89         shift
90         ;;
91         -epsilon)
92         epsilon="$2"
93         shift
94         ;;
95         -seed)
96         seed="$2 $3 $4"
97         shift
98         shift
99         shift
100         ;;
101         *)
102         # Do nothing
103         ;;
104     esac
105     shift
106 done
107
108 ## -- Check command line options
109 if [ -z "$input" ] || [ -z "$seed" ] ; then
110     (>&2 echo "Usage: $0 -input <file> -seed <x y z> [-force]")
111     exit 1
112 fi
113
114 base_dir=`dirname $input | xargs realpath`
115 base_name=$base_dir/`basename $input .$ext`
116
117 vesselness=$base_name"_vesselness.$ext"
118 mori=$base_name"_mori.$ext"
119 mori_signal=$base_name"_mori_signal.txt"
120 labels=$base_name"_labels.$ext"
121 fastrw=$base_name"_fastrw.$ext"
122 slicerw=$base_name"_slicerw.$ext"
123 skeleton_fastrw=$base_name"_fastrw_skeleton.txt"
124 skeleton_slicerw=$base_name"_slicerw_skeleton.txt"
125 points=$base_name"_points.txt"
126
127 echo "************************************************"
128 (>&2 echo "Processing $input... ")
129 echo "Processing $input..."
130 if [ ! -f $vesselness ] || [ -n "$force" ] ; then
131     $curr_dir/fpa_CTBronchi_Vesselness \
132         -i $input -o $vesselness \
133         -s $vesselness_sigma -a $vesselness_alpha1 -b $vesselness_alpha2
134 fi
135
136 if [ ! -f $mori ] || [ -n "$force" ] ; then
137     $curr_dir/fpa_CTBronchi_MoriSegmentation \
138         -i $input \
139         -o $mori \
140         -s $mori_signal \
141         -p "$seed" \
142         -t $mori_min_thr \
143         -k $mori_kernel \
144         -r $mori_signal_thr \
145         -f $mori_signal_influence \
146         -l $mori_lower \
147         -u $mori_upper \
148         -d $mori_delta
149 fi
150
151 if [ ! -f $labels ] || [ -n "$force" ] ; then
152     $curr_dir/fpa_CTBronchi_MoriLabelling \
153         -i $input \
154         -l $mori \
155         -v $vesselness \
156         -o $labels \
157         -a $fast_vesselness_thr \
158         -u $labels_upper_thr
159 fi
160
161 if [ ! -f $fastrw ] || [ -n "$force" ] ; then
162     $curr_dir/fpa_CTBronchi_FastRandomWalker \
163         -i $input \
164         -l $labels \
165         -o $fastrw \
166         -b $beta \
167         -e $epsilon
168 fi
169
170 if [ ! -f $slicerw ] || [ -n "$force" ] ; then
171     $curr_dir/fpa_CTBronchi_SliceBySliceRandomWalker \
172         -i $input \
173         -l $mori \
174         -v $vesselness \
175         -o $slicerw \
176         -t $slice_by_slice_vesselness_thr \
177         -b $beta \
178         -e $epsilon
179 fi
180
181 if [ ! -f $skeleton_slicerw ] || [ -n "$force" ] ; then
182     $curr_dir/fpa_CTBronchi_Skeleton \
183         -i $slicerw \
184         -o $skeleton_slicerw \
185         -e $points \
186         -p "$seed"
187 fi
188 (>&2 echo "done.")
189 echo "done."
190 echo "************************************************"
191
192 ## eof - $RCSfile$