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