📄 avw_img_compose.html
字号:
0078 warning(msg);0079 <span class="comment">% OK this field is probably FOV, so lets</span>0080 <span class="comment">% divide it by the total number of slices</span>0081 SliceFOV = double(avw.hdr.dime.pixdim(4));0082 avw.hdr.dime.pixdim(4) = single(SliceFOV / Nfiles);0083 <span class="keyword">end</span>0084 0085 <span class="comment">% Initialise avw.img and reset some header dimensions</span>0086 avw.hdr.dime.dim(4) = Nfiles;0087 avw = <a href="#_sub2" class="code" title="subfunction [avw] = avw_img_init(avw),">avw_img_init</a>(avw);0088 0089 <span class="comment">% Now reset orient field of avw, as all data will</span>0090 <span class="comment">% be in standard axial unflipped orientation after</span>0091 <span class="comment">% avw_img_read.</span>0092 avw.hdr.hist.orient = char(0);0093 0094 0095 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0096 <span class="comment">% Add slices, depends on whether slice order is normal or flipped</span>0097 0098 orient = double(firstslice.hdr.hist.orient);0099 0100 <span class="keyword">if</span> orient < 3,0101 <span class="comment">% process slices as unflipped volume</span>0102 <span class="keyword">for</span> f = 1:Nfiles,0103 <span class="keyword">if</span> files(f).bytes == Fsize,0104 slice = <a href="avw_img_read.html" class="code" title="function [ avw, machine ] = avw_img_read(fileprefix,IMGorient,machine)">avw_img_read</a>(files(f).name,IMGorient,machine);0105 avw = <a href="#_sub1" class="code" title="subfunction [avw] = avw_add_slice(avw,slice,Nslice,orient),">avw_add_slice</a>(avw,slice,f,orient);0106 <span class="keyword">else</span>0107 msg = sprint(<span class="string">'AVW_IMG_COMPOSE: This file is not the same size as the first file!'</span>);0108 error(msg);0109 <span class="keyword">end</span>0110 <span class="keyword">end</span>0111 <span class="keyword">else</span>0112 <span class="comment">% process slices as flipped volume</span>0113 <span class="keyword">for</span> f = Nfiles:-1:1,0114 <span class="keyword">if</span> files(f).bytes == Fsize,0115 slice = <a href="avw_img_read.html" class="code" title="function [ avw, machine ] = avw_img_read(fileprefix,IMGorient,machine)">avw_img_read</a>(files(f).name,IMGorient,machine);0116 avw = <a href="#_sub1" class="code" title="subfunction [avw] = avw_add_slice(avw,slice,Nslice,orient),">avw_add_slice</a>(avw,slice,f,orient);0117 <span class="keyword">else</span>0118 msg = sprint(<span class="string">'AVW_IMG_COMPOSE: This file is not the same size as the first file!'</span>);0119 error(msg);0120 <span class="keyword">end</span>0121 <span class="keyword">end</span>0122 <span class="keyword">end</span>0123 0124 0125 <span class="keyword">return</span>0126 0127 0128 0129 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0130 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0131 <a name="_sub1" href="#_subfunctions" class="code">function [avw] = avw_add_slice(avw,slice,Nslice,orient),</a>0132 0133 <span class="comment">% Check that composed volume and current slice</span>0134 <span class="comment">% have the same orientation</span>0135 Vorient = double( avw.hdr.hist.orient);0136 Sorient = double(slice.hdr.hist.orient);0137 0138 <span class="keyword">if</span> Vorient ~= Sorient,0139 msg = sprintf(<span class="string">'AVW_IMG_COMPOSE: Slice %3d has different orientation to volume'</span>,Nslice);0140 error(msg);0141 <span class="keyword">end</span>0142 0143 <span class="keyword">switch</span> double(orient),0144 0145 <span class="keyword">case</span> 0, <span class="comment">% axial unflipped</span>0146 0147 <span class="comment">% Slices in 'z' axis - from patient inferior to superior</span>0148 avw.img(:,:,Nslice) = slice.img;0149 0150 <span class="keyword">case</span> 1, <span class="comment">% coronal unflipped</span>0151 0152 <span class="comment">% Slices in 'y' axis - from patient posterior to anterior</span>0153 avw.img(:,Nslice,:) = slice.img;0154 0155 <span class="keyword">case</span> 2, <span class="comment">% sagittal unflipped</span>0156 0157 <span class="comment">% Slices in 'x' axis - from patient right to left</span>0158 avw.img(Nslice,:,:) = slice.img;0159 0160 <span class="keyword">case</span> 3, <span class="comment">% axial flipped</span>0161 0162 <span class="comment">% Slices in 'z' axis - from patient inferior to superior</span>0163 avw.img(:,:,Nslice) = slice.img;0164 0165 <span class="keyword">case</span> 4, <span class="comment">% coronal flipped</span>0166 0167 <span class="comment">% Slices in 'y' axis - from patient anterior to posterior</span>0168 avw.img(:,Nslice,:) = slice.img;0169 0170 <span class="keyword">case</span> 5, <span class="comment">% sagittal flipped</span>0171 0172 <span class="comment">% Slices in 'x' axis - from patient right to left</span>0173 avw.img(Nslice,:,:) = slice.img;0174 <span class="keyword">end</span>0175 0176 <span class="keyword">return</span>0177 0178 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0179 <a name="_sub2" href="#_subfunctions" class="code">function [avw] = avw_img_init(avw),</a>0180 0181 PixelDim = double(avw.hdr.dime.dim(2));0182 RowDim = double(avw.hdr.dime.dim(3));0183 SliceDim = double(avw.hdr.dime.dim(4));0184 0185 PixelSz = double(avw.hdr.dime.pixdim(2));0186 RowSz = double(avw.hdr.dime.pixdim(3));0187 SliceSz = double(avw.hdr.dime.pixdim(4));0188 0189 <span class="keyword">switch</span> double(avw.hdr.hist.orient),0190 0191 <span class="keyword">case</span> {0,3}, <span class="comment">% axial unflipped or flipped</span>0192 0193 x = PixelDim; Xsz = PixelSz;0194 y = RowDim; Ysz = RowSz;0195 z = SliceDim; Zsz = SliceSz;0196 0197 <span class="keyword">case</span> {1,4}, <span class="comment">% coronal unflipped or flipped</span>0198 0199 x = PixelDim; Xsz = PixelSz;0200 y = SliceDim; Ysz = SliceSz;0201 z = RowDim; Zsz = RowSz;0202 0203 <span class="keyword">case</span> {2,5}, <span class="comment">% sagittal unflipped or flipped</span>0204 0205 x = SliceDim; Xsz = SliceSz;0206 y = PixelDim; Ysz = PixelSz;0207 z = RowDim; Zsz = RowSz;0208 0209 <span class="keyword">otherwise</span>, <span class="comment">% assume axial unflipped or flipped</span>0210 0211 msg = sprintf(<span class="string">'AVW_IMG_COMPOSE: No specified orientation\n'</span>);0212 warning(msg);0213 0214 x = PixelDim; Xsz = PixelSz;0215 y = RowDim; Ysz = RowSz;0216 z = SliceDim; Zsz = SliceSz;0217 0218 <span class="keyword">end</span>0219 0220 avw.img = zeros(x,y,z);0221 avw.hdr.dime.dim(2) = x;0222 avw.hdr.dime.dim(3) = y;0223 avw.hdr.dime.dim(4) = z;0224 0225 avw.hdr.dime.pixdim(2) = Xsz;0226 avw.hdr.dime.pixdim(3) = Ysz;0227 avw.hdr.dime.pixdim(4) = Zsz;0228 0229 <span class="keyword">return</span></pre></div><hr><address>Generated on Fri 21-May-2004 12:38:21 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> © 2003</address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -