]> Creatis software - clitk.git/blob - vv/scripts/create_mhd_4D.sh
b0503c96a31eef862de7f238bfad335710f5ec90
[clitk.git] / vv / 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
72   write_mhd_4D $1
73
74 done
75
76
77 ############ PET ###########
78
79 list_pattern=""
80 list_phase_file=`find $1 -iname "*[0-9]*\]*.mhd"`
81 for phase_file in $list_phase_file
82 do
83   phase_file_name=`basename $phase_file`
84   if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]]
85   then
86     prefix=`echo $phase_file_name | sed "s/.*[0-9]-/-/;s/\]_.*//"`
87   else
88     prefix="NONE"
89   fi
90   if [[ -z `echo "$list_pattern" | grep -- "$prefix"` ]]
91   then
92     list_pattern="$list_pattern $prefix"
93   fi
94 done
95
96   
97 for pattern in $list_pattern
98 do
99
100   if [ "$pattern" = "NONE" ]
101   then
102     pattern=""
103   fi
104
105   nbph=`find $1 -iname "*[0-9]${pattern}\]*.mhd" | wc -l`
106   orig=`find $1 -iname "*[0-9]${pattern}\]*.mhd" | sort | head -n 1`
107   listph=`find $1 -iname "*[0-9]${pattern}\]*.raw" | sort`
108   
109   file_name_4D=`basename "$orig" | sed "s/[0-9]${pattern}\]/${pattern}\]/;s/_.mhd/_4D.mhd/"`
110
111   write_mhd_4D $1
112
113 done