]> 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="mha"
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 fastrw_points=$base_name"_fastrw_points.txt"
126 slicerw_points=$base_name"_slicerw_points.txt"
127
128 echo "************************************************"
129 (>&2 echo "Processing $input... ")
130 echo "Processing $input..."
131 if [ ! -f $vesselness ] || [ -n "$force" ] ; then
132     $curr_dir/fpa_CTBronchi_Vesselness \
133         -i $input -o $vesselness \
134         -s $vesselness_sigma -a $vesselness_alpha1 -b $vesselness_alpha2
135 fi
136
137 if [ ! -f $mori ] || [ -n "$force" ] ; then
138     $curr_dir/fpa_CTBronchi_MoriSegmentation \
139         -i $input \
140         -o $mori \
141         -s $mori_signal \
142         -p "$seed" \
143         -t $mori_min_thr \
144         -k $mori_kernel \
145         -r $mori_signal_thr \
146         -f $mori_signal_influence \
147         -l $mori_lower \
148         -u $mori_upper \
149         -d $mori_delta
150 fi
151
152 if [ ! -f $labels ] || [ -n "$force" ] ; then
153     $curr_dir/fpa_CTBronchi_MoriLabelling \
154         -i $input \
155         -l $mori \
156         -v $vesselness \
157         -o $labels \
158         -a $fast_vesselness_thr \
159         -u $labels_upper_thr
160 fi
161
162 if [ ! -f $fastrw ] || [ -n "$force" ] ; then
163     $curr_dir/fpa_CTBronchi_FastRandomWalker \
164         -i $input \
165         -l $labels \
166         -o $fastrw \
167         -b $beta \
168         -e $epsilon
169 fi
170
171 if [ ! -f $slicerw ] || [ -n "$force" ] ; then
172     $curr_dir/fpa_CTBronchi_SliceBySliceRandomWalker \
173         -i $input \
174         -l $mori \
175         -v $vesselness \
176         -o $slicerw \
177         -t $slice_by_slice_vesselness_thr \
178         -b $beta \
179         -e $epsilon
180 fi
181
182 if [ ! -f $skeleton_slicerw ] || [ -n "$force" ] ; then
183     $curr_dir/fpa_CTBronchi_Skeleton \
184         -i $slicerw \
185         -o $skeleton_slicerw \
186         -e $slicerw_points \
187         -p "$seed"
188 fi
189
190 # if [ ! -f $skeleton_fastrw ] || [ -n "$force" ] ; then
191 #     $curr_dir/fpa_CTBronchi_Skeleton \
192 #         -i $fastrw \
193 #         -o $skeleton_fastrw \
194 #         -e $fastrw_points \
195 #         -p "$seed"
196 # fi
197 (>&2 echo "done.")
198 echo "done."
199 echo "************************************************"
200
201 ## eof - $RCSfile$