📄 analyzemovie.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head> <title>Description of AnalyzeMovie</title> <meta name="keywords" content="AnalyzeMovie"> <meta name="description" content="AnalyzeMovie - Save analyze images to a kine-loop AVI"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="m2html © 2003 Guillaume Flandin"> <meta name="robots" content="index, follow"> <link type="text/css" rel="stylesheet" href="../m2html.css"></head><body><a name="_top"></a><div><a href="../index.html">Home</a> > <a href="index.html">mri_toolbox</a> > AnalyzeMovie.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td><td align="right"><a href="index.html">Index for mri_toolbox <img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>AnalyzeMovie</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>AnalyzeMovie - Save analyze images to a kine-loop AVI</strong></div><h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>function AnalyzeMovie </strong></div><h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre class="comment"> AnalyzeMovie - Save analyze images to a kine-loop AVI
Options are the size of the movie and the views.</pre></div><!-- crossreference --><h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>This function calls:<ul style="list-style-image:url(../matlabicon.gif)"></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"></ul><!-- crossreference --><h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><ul style="list-style-image:url(../matlabicon.gif)"><li><a href="#_sub1" class="code">function results = movieView(vHdr)</a></li></ul><h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function AnalyzeMovie</a>0002 0003 <span class="comment">% AnalyzeMovie - Save analyze images to a kine-loop AVI</span>0004 <span class="comment">%</span>0005 <span class="comment">% Options are the size of the movie and the views.</span>0006 <span class="comment">%</span>0007 0008 0009 <span class="comment">% NOTE ON UNIX THERE IS NO OPTION TO COMPRESS, SO THE</span>0010 <span class="comment">% FILES GET REALLY BIG!!!</span>0011 <span class="comment">%</span>0012 <span class="comment">% I'll work on compression for a windows version - maybe.</span>0013 <span class="comment">%</span>0014 0015 <span class="comment">% $Revision: 1.6 $ $Date: 2004/02/07 01:41:51 $</span>0016 0017 <span class="comment">% Licence: GNU GPL, no express or implied warranties</span>0018 <span class="comment">% 10/2002, Robert C. Welsh <rcwelsh@umich.edu></span>0019 <span class="comment">% University of Michigan, Radiology</span>0020 <span class="comment">% 02/2003, Darren.Weber@flinders.edu.au</span>0021 <span class="comment">% - attempt to adapt for mri_toolbox, rather than</span>0022 <span class="comment">% depend on spm</span>0023 <span class="comment">%</span>0024 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0025 0026 0027 SCCSid = <span class="string">'0.5'</span>;0028 0029 <span class="keyword">global</span> BCH; <span class="comment">%- used as a flag to know if we are in batch mode or not.</span>0030 0031 <span class="comment">%-GUI setup</span>0032 <span class="comment">%-----------------------------------------------------------------------</span>0033 0034 SPMid = spm(<span class="string">'FnBanner'</span>,mfilename,SCCSid);0035 [Finter,Fgraph,CmdLine] = spm(<span class="string">'FnUIsetup'</span>,<span class="string">'Analyze Movie Maker'</span>,0);0036 fprintf(<span class="string">'AnalyzeMovie Toolbox 0.5\n'</span>);0037 0038 spm(<span class="string">'FigName'</span>,<span class="string">'Analyze Image Movie Maker'</span>,Finter,CmdLine);0039 <span class="comment">% get the name of the rois file.</span>0040 0041 movieSize = spm_input_ui(<span class="string">'Movie size?'</span>,<span class="string">'+1'</span>,<span class="string">'m'</span>,<span class="keyword">...</span>0042 [<span class="string">'Small (200x200)|'</span>, <span class="keyword">...</span>0043 <span class="string">'Medium (300x300)|'</span>, <span class="keyword">...</span>0044 <span class="string">'Large (400x400)|'</span>],[1 2 3],1);0045 0046 imageView = spm_input_ui(<span class="string">'Image View?'</span>,<span class="string">'+1'</span>,<span class="string">'m'</span>,<span class="keyword">...</span>0047 [<span class="string">'Axial|'</span>, <span class="keyword">...</span>0048 <span class="string">'Coronal|'</span>, <span class="keyword">...</span>0049 <span class="string">'Sagitall|All'</span>],[1 2 3 4],1);0050 0051 pixSize = [200 300 400];0052 0053 movieType= [<span class="string">'a'</span> <span class="string">'c'</span> <span class="string">'s'</span> <span class="string">'o'</span>];0054 0055 <span class="comment">% smoothing parameters</span>0056 nMovies = spm_input(<span class="string">'Number of movies'</span>,<span class="string">'+1'</span>,<span class="string">'i'</span>,<span class="string">'1'</span>,1,[0,Inf]);0057 0058 <span class="keyword">if</span> nMovies < 10059 spm(<span class="string">'alert'</span>,<span class="string">'Exiting as you requested.'</span>,<span class="string">'AnalyzeMovie'</span>,[],0);0060 <span class="keyword">return</span>0061 <span class="keyword">end</span>0062 0063 0064 <span class="comment">% change this...</span>0065 spmImgFiles = {};0066 0067 0068 <span class="keyword">for</span> iMovie = 1:nMovies,0069 0070 <span class="comment">% change this...</span>0071 spmImgFiles{iMovie} = spm_get([0,Inf],<span class="string">'*.img'</span>,sprintf([<span class="string">'Pick'</span> <span class="keyword">...</span>0072 <span class="string">' Image files for movie %d'</span>],iMovie),<span class="string">'./'</span>,0);0073 <span class="keyword">if</span> (length(spmImgFiles{iMovie})< 2)0074 spm(<span class="string">'alert'</span>,<span class="string">'Exiting as you requested.'</span>,<span class="string">'AnalyzeMovie'</span>,[],0);0075 <span class="keyword">return</span>0076 <span class="keyword">end</span>0077 0078 <span class="keyword">end</span>0079 0080 <span class="comment">% Now extract the files.</span>0081 0082 0083 figMovie=figure;0084 close(figMovie);0085 figMovie=figure(figMovie);0086 set(figMovie,<span class="string">'visible'</span>,<span class="string">'off'</span>);0087 set(figMovie,<span class="string">'DoubleBuffer'</span>,<span class="string">'on'</span>);0088 set(figMovie,<span class="string">'color'</span>,[0 0 0]);0089 curPos = get(figMovie,<span class="string">'Position'</span>);0090 set(figMovie,<span class="string">'Position'</span>,[curPos(1) curPos(2) pixSize(movieSize) pixSize(movieSize)]);0091 <span class="keyword">for</span> iMovie = 1:nMovies,0092 [movieDir movieName] = fileparts(spmImgFiles{iMovie}(1,:));0093 newMovieName = fullfile(movieDir,[<span class="string">'kine-loop-'</span> <span class="keyword">...</span>0094 movieType(imageView:imageView) <span class="string">'.avi'</span>]);0095 theMovie = avifile(newMovieName);0096 0097 0098 <span class="comment">% change this...</span>0099 spm_progress_bar(<span class="string">'Init'</span>,size(spmImgFiles{iMovie},1),sprintf([<span class="string">'Movie #'</span> <span class="keyword">...</span>0100 <span class="string">' %d of %d'</span>],iMovie,nMovies),<span class="string">'Extracting data'</span>);0101 0102 0103 0104 <span class="comment">% change spmImgFiles...</span>0105 <span class="keyword">for</span> iFile = 1:size(spmImgFiles{iMovie},1),0106 0107 spm_progress_bar(<span class="string">'Set'</span>,iFile);0108 0109 0110 <span class="comment">% change this...</span>0111 volHdr = spm_vol(spmImgFiles{iMovie}(iFile,:));0112 0113 0114 slices = <a href="#_sub1" class="code" title="subfunction results = movieView(vHdr)">movieView</a>(volHdr);0115 <span class="comment">%aVol = spm_read_vols(spm_vol(spmImgFiles{iMovie}(iFile,:)));</span>0116 <span class="comment">%[nX nY nZ] = size(aVol);</span>0117 <span class="comment">%midX = floor(nX/2);</span>0118 <span class="comment">%midY = floor(nY/2);</span>0119 <span class="comment">%midZ = floor(nZ/2);</span>0120 <span class="keyword">switch</span> imageView0121 <span class="keyword">case</span> 10122 aSlice = slices.aS;0123 <span class="comment">%aSlice = squeeze(aVol(:,:,midZ));</span>0124 <span class="keyword">case</span> 20125 aSlice = rot90(slices.cS,1);0126 <span class="comment">%aSlice = squeeze(aVol(:,midY,:));</span>0127 <span class="keyword">case</span> 30128 aSlice = rot90(slices.sS,1);0129 <span class="comment">%aSlice = squeeze(aVol(midX,:,:));</span>0130 <span class="keyword">case</span> 4 0131 aSlice = slices.ortho;0132 <span class="keyword">end</span>0133 aSlice = aSlice/max(max(max(aSlice)));0134 aSlice = aSlice*256;0135 image(aSlice);0136 axis image;0137 colormap(gray(256));0138 curFrame = getframe(gca);0139 theMovie = addframe(theMovie,curFrame);0140 <span class="keyword">end</span>0141 theMovie=close(theMovie);0142 <span class="keyword">end</span>0143 0144 <span class="comment">% Change this...</span>0145 spm_progress_bar(<span class="string">'Clear'</span>);0146 spm_clf(Finter);0147 spm(<span class="string">'FigName'</span>,<span class="string">'Finished'</span>,Finter,CmdLine);0148 spm(<span class="string">'Pointer'</span>,<span class="string">'Arrow'</span>);0149 0150 0151 0152 close(figMovie);0153 0154 fprintf(<span class="string">'\nFinished making movie : %s\n'</span>,newMovieName);0155 0156 <span class="keyword">return</span>0157 0158 0159 0160 0161 0162 0163 <span class="comment">%-----------------------------------------------------------</span>0164 0165 <a name="_sub1" href="#_subfunctions" class="code">function results = movieView(vHdr)</a>0166 0167 <span class="comment">% A macro to build the views (based on spm_orthoviews)</span>0168 <span class="comment">%</span>0169 <span class="comment">% Robert C. Welsh <rcwelsh@umich.edu></span>0170 <span class="comment">% Radiology, University of Michigan</span>0171 <span class="comment">%</span>0172 <span class="comment">% 2002.10.29, Version 0.1</span>0173 0174 bb = [-78 -112 -50; 78 76 85];0175 Dims = diff(bb)'+1;0176 0177 TM0 = [ 1 0 0 -bb(1,1)+1;<span class="keyword">...</span>0178 0 1 0 -bb(1,2)+1;<span class="keyword">...</span>0179 0 0 1 0;<span class="keyword">...</span>0180 0 0 0 1];0181 CM0 = [ 1 0 0 -bb(1,1)+1;<span class="keyword">...</span>0182 0 0 1 -bb(1,3)+1;<span class="keyword">...</span>0183 0 1 1 0;<span class="keyword">...</span>0184 0 0 0 1];0185 SM0 = [ 0 -1 0 -bb(1,2)+1;<span class="keyword">...</span>0186 0 0 1 -bb(1,3)+1;<span class="keyword">...</span>0187 1 0 0 0;<span class="keyword">...</span>0188 0 0 0 1];0189 0190 TD = [Dims(1) Dims(2)];0191 CD = [Dims(1) Dims(3)];0192 SD = [Dims(2) Dims(3)];0193 0194 notSure = [1 0 0 0; 0 1 0 0 ; 0 0 1 0; 0 0 0 1];0195 0196 TM = inv(TM0*(notSure\vHdr.mat));0197 CM = inv(CM0*(notSure\vHdr.mat));0198 SM = inv(SM0*(notSure\vHdr.mat));0199 0200 0201 <span class="comment">%</span>0202 <span class="comment">% Change this...</span>0203 axialSlice = spm_slice_vol(vHdr,TM,TD,0);0204 coronalSlice = spm_slice_vol(vHdr,CM,CD,0);0205 sagittalSlice = spm_slice_vol(vHdr,SM,SD,0);0206 0207 0208 0209 results.aS = axialSlice;0210 results.cS = coronalSlice;0211 results.sS = sagittalSlice;0212 0213 bigPix = zeros(Dims(2)+Dims(3),Dims(1)+Dims(2));0214 0215 bigPix(1:Dims(2),1:Dims(1)) = rot90(axialSlice,1);0216 bigPix(Dims(2)+1:Dims(2)+Dims(3),1:Dims(1)) = rot90(coronalSlice);0217 bigPix(Dims(2)+1:Dims(2)+Dims(3),Dims(1)+1:Dims(1)+Dims(2)) = <span class="keyword">...</span>0218 rot90(sagittalSlice);0219 0220 results.ortho=bigPix;0221 0222 <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 + -