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