]> Creatis software - clitk.git/blob - scripts/create_mhd_4D.sh
00df85ce77720452d5ab9174393face3c81f410f
[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 -iname "*[0-9]*.mhd" -o -iname "*[0-9]*\]*.mhd" | wc -l`
32 if [ $nb_phase_file = 0 ]
33 then
34   echo "Error: no phase found"
35   exit 1
36 fi
37
38 ########## CT #########
39
40 list_pattern=""
41 list_phase_file=`find $1 -iname "*[0-9]*.mhd"`
42 for phase_file in $list_phase_file
43 do
44   phase_file_name=`basename $phase_file`
45   if [[ ! -z `echo "$phase_file_name" | grep ","` ]]
46   then
47     prefix=`echo $phase_file_name | sed "s/,_.*/,_/"`
48   else
49     prefix="NONE"
50   fi
51   if [[ -z `echo "$list_pattern" | grep "$prefix"` ]]
52   then
53     list_pattern="$list_pattern $prefix"
54   fi
55 done
56
57
58 for pattern in $list_pattern
59 do
60
61   if [ "$pattern" = "NONE" ]
62   then
63     pattern=""
64   fi
65
66   nbph=`find $1 -iname "${pattern}*[0-9]*.mhd" | wc -l`
67   orig=`find $1 -iname "${pattern}*[0-9]*.mhd" | sort | head -n 1`
68   listph=`find $1 -iname "${pattern}*[0-9]*.raw" | sort`
69
70   file_name_4D="${pattern}_4D.mhd"
71   echo $file_name_4D
72
73   write_mhd_4D $1
74
75 done
76
77
78 ############ PET ###########
79
80 list_pattern=""
81 list_phase_file=`find $1 -iname "*[0-9]*\]*.mhd"`
82 for phase_file in $list_phase_file
83 do
84   phase_file_name=`basename $phase_file`
85   if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]]
86   then
87     prefix=`echo $phase_file_name | sed "s/.*[0-9]-/-/;s/\]_.*//"`
88   else
89     prefix="NONE"
90   fi
91   if [[ -z `echo "$list_pattern" | grep -- "$prefix"` ]]
92   then
93     list_pattern="$list_pattern $prefix"
94   fi
95 done
96
97   
98 for pattern in $list_pattern
99 do
100
101   if [ "$pattern" = "NONE" ]
102   then
103     pattern=""
104   fi
105
106   nbph=`find $1 -iname "*[0-9]${pattern}\]*.mhd" | wc -l`
107   orig=`find $1 -iname "*[0-9]${pattern}\]*.mhd" | sort | head -n 1`
108   listph=`find $1 -iname "*[0-9]${pattern}\]*.raw" | sort`
109   
110   file_name_4D=`basename "$orig" | sed "s/[0-9]${pattern}\]/${pattern}\]/;s/_.mhd/_4D.mhd/"`
111
112   write_mhd_4D $1
113
114 done