]> 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 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         -labels_vesselness_thr)
71         labels_vesselness_thr="$2"
72         shift
73         ;;
74         -slice_by_slice_vesselness_thr)
75         slice_by_slice_vesselness_thr="$2"
76         shift
77         ;;
78         -labels_upper_thr)
79         labels_upper_thr="$2"
80         shift
81         ;;
82         -beta)
83         beta="$2"
84         shift
85         ;;
86         -epsilon)
87         epsilon="$2"
88         shift
89         ;;
90         -seed)
91         seed="$2 $3 $4"
92         shift
93         shift
94         shift
95         ;;
96         *)
97         # Do nothing
98         ;;
99     esac
100     shift
101 done
102
103 ## -- Check command line options
104 if [ -z "$input" ] || [ -z "$seed" ] ; then
105     (>&2 echo "Usage: $0 -input <file> -seed <x y z> [-force]")
106     exit 1
107 fi
108
109 base_dir=`dirname $input | xargs realpath`
110 base_name=$base_dir/`basename $input .mhd`
111
112 vesselness=$base_name"_vesselness.mhd"
113 mori=$base_name"_mori.mhd"
114 mori_signal=$base_name"_mori_signal.txt"
115 labels=$base_name"_labels.mhd"
116 fastrw=$base_name"_fastrw.mhd"
117 slicerw=$base_name"_slicerw.mhd"
118
119 echo "************************************************"
120 (>&2 echo "Processing $input... ")
121 echo "Processing $input..."
122 if [ ! -f $vesselness ] || [ -n "$force" ] ; then
123     $curr_dir/fpa_CTBronchi_Vesselness \
124         -i $input -o $vesselness \
125         -s $vesselness_sigma -a $vesselness_alpha1 -b $vesselness_alpha2
126 fi
127
128 if [ ! -f $mori ] || [ -n "$force" ] ; then
129     $curr_dir/fpa_CTBronchi_MoriSegmentation \
130         -i $input \
131         -o $mori \
132         -s $mori_signal \
133         -p "$seed" \
134         -t $mori_min_thr \
135         -k $mori_kernel \
136         -r $mori_signal_thr \
137         -f $mori_signal_influence \
138         -l $mori_lower \
139         -u $mori_upper \
140         -d $mori_delta
141 fi
142
143 if [ ! -f $labels ] || [ -n "$force" ] ; then
144     $curr_dir/fpa_CTBronchi_MoriLabelling \
145         -i $input \
146         -l $mori \
147         -v $vesselness \
148         -o $labels \
149         -a $labels_vesselness_thr \
150         -u $labels_upper_thr
151 fi
152
153 if [ ! -f $fastrw ] || [ -n "$force" ] ; then
154     $curr_dir/fpa_CTBronchi_FastRandomWalker \
155         -i $input \
156         -l $labels \
157         -o $fastrw \
158         -b $beta \
159         -e $epsilon
160 fi
161
162 if [ ! -f $slicerw ] || [ -n "$force" ] ; then
163     $curr_dir/fpa_CTBronchi_SliceBySliceRandomWalker \
164         -i $input \
165         -l $mori \
166         -v $vesselness \
167         -o $slicerw \
168         -t $slice_by_slice_vesselness_thr \
169         -b $beta \
170         -e $epsilon
171 fi
172 (>&2 echo "done.")
173 echo "done."
174 echo "************************************************"
175
176 ## eof - $RCSfile$