]> Creatis software - clitk.git/blob - scripts/create_mhd_4D.sh
GateAsciiImageIO is now cross-platform using itksys::RegularExpression
[clitk.git] / scripts / create_mhd_4D.sh
1 #!/bin/sh
2
3
4 write_mhd_4D()
5 {
6   cat $orig | sed "s/NDims = .*/NDims = 4/
7                   s/TransformMatrix = .*/TransformMatrix = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1/
8                   /Offset/ s/.*/& 0/
9                   /CenterOfRotation/ s/.*/& 0/
10                   s/AnatomicalOrientation = .*/AnatomicalOrientation = ????/
11                   /ElementSpacing/ s/.*/& 1/
12                   /DimSize/ s/.*/& $nbph/
13                   s/ElementDataFile = .*/ElementDataFile = LIST/" > "$1/$file_name_4D"
14   
15   for ph in $listph
16   do
17     ph=`basename $ph`
18     echo "$ph" >> "$1/$file_name_4D"
19   done
20 }
21
22 #################################################
23 # create_mhd_4D         argument : repertoire   #
24 #################################################
25 if [ $# -lt 1 ]
26 then
27   echo "Usage: create_mhd_4D.sh DIRECTORY"
28   exit 1
29 fi
30
31 nb_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd" | wc -l`
32 if [ $nb_phase_file = 0 ]
33 then
34   echo "No phase found in $1"
35   exit 1
36 fi
37
38
39 list_prefix=""
40 list_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd"`
41 for phase_file in $list_phase_file
42 do
43   phase_file_name=`basename $phase_file`
44   if [[ ! -z `echo "$phase_file_name" | grep "__[0-9]"` ]]
45   then
46     prefix=`echo $phase_file_name | sed "s/__[0-9].*/__/"`
47   else
48     if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]]
49     then
50       if [[ ! -z `echo "$phase_file_name" | grep "[0-9][0-9]-.*\]"` ]]
51       then
52         prefix=`echo $phase_file_name | sed "s/[0-9][0-9]-.*//"`
53       else
54         prefix=`echo $phase_file_name | sed "s/[0-9]-.*//"`
55       fi
56     else
57       prefix="NONE"
58     fi
59   fi
60
61   if [[ -z `echo "$list_prefix" | grep "$prefix"` ]]
62   then
63     list_prefix="$list_prefix $prefix"
64   fi
65 done
66
67
68 for prefix in $list_prefix
69 do
70   if [ "$prefix" = "NONE" ]
71   then
72     prefix=""
73   fi
74
75   list_suffix=""
76   list_phase_file_prefix=`find $1 -maxdepth 1 -iname "${prefix}[0-9]*.mhd"`
77   for phase_file_prefix in $list_phase_file_prefix
78   do
79     phase_file_prefix_name=`basename $phase_file_prefix`
80     if [[ ! -z `echo "$phase_file_prefix_name" | grep "__[0-9]"` ]]
81     then
82       suffix="NONE"
83     else
84       if [[ ! -z `echo "$phase_file_prefix_name" | grep "[0-9]-.*\]"` ]]
85       then
86         suffix=`echo $phase_file_prefix_name | sed "s/.*[0-9]-//;s/_\.mhd//;s/\.mhd//"`
87       else
88         suffix="NONE"
89       fi
90     fi
91
92     if [[ -z `echo "$list_suffix" | grep "$suffix"` ]]
93     then
94       list_suffix="$list_suffix $suffix"
95     fi
96   done
97
98   for suffix in $list_suffix
99   do
100     if [ "$suffix" = "NONE" ]
101     then
102       suffix=""
103     fi
104     nbph=`find $1 -maxdepth 1 -iname "*${prefix}*[0-9]*${suffix}*.mhd" | wc -l`
105     orig=`find $1 -maxdepth 1 -iname "*${prefix}*[0-9]*${suffix}*.mhd" | sort | head -n 1`
106     listph=`find $1 -maxdepth 1 -iname "*${prefix}*[0-9]*${suffix}*.raw" | sort`
107
108     file_name_4D="${prefix}4D${suffix}.mhd"
109     
110     write_mhd_4D $1
111
112   done
113
114 done
115