⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avw_view_new.html

📁 mri_toolbox是一个工具用来MRI. 来自于SourceForge, 我上传这个软件,希望能结识对医疗软件感兴趣的兄弟.
💻 HTML
📖 第 1 页 / 共 5 页
字号:
0510     
0511     bins = intensity_min:intensity_max;
0512     
0513     fprintf(<span class="string">'...calculating histogram for %d bins.\n'</span>,length(bins));
0514     
0515     <span class="keyword">for</span> i=1:size(avw.img,3),
0516       n = hist(avw.img(:,:,i), bins);
0517       <span class="keyword">if</span> i == 1,
0518         intensity_volume = sum(n,2);
0519       <span class="keyword">else</span>
0520         intensity_slice = sum(n,2);
0521         intensity_volume = intensity_volume + intensity_slice;
0522       <span class="keyword">end</span>
0523     <span class="keyword">end</span>
0524     figure(<span class="string">'name'</span>,<span class="string">'intensity histogram'</span>);
0525     bar(bins,intensity_volume);
0526     
0527     
0528     
0529     
0530     <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0531     
0532   <span class="keyword">case</span> <span class="string">'zoom'</span>
0533     
0534     x = AVWVIEW.slices.sag;
0535     y = AVWVIEW.slices.cor;
0536     z = AVWVIEW.slices.axi;
0537     
0538     <span class="keyword">switch</span> AVWVIEW.view,
0539       <span class="keyword">case</span> <span class="string">'axi'</span>,
0540         slice = rot90(AVWVIEW.avw.img(:,:,z));
0541       <span class="keyword">case</span> <span class="string">'cor'</span>,
0542         slice = rot90(squeeze(AVWVIEW.avw.img(:,y,:)));
0543       <span class="keyword">case</span> <span class="string">'sag'</span>,
0544         slice = rot90(squeeze(AVWVIEW.avw.img(x,:,:)));
0545     <span class="keyword">end</span>
0546     
0547     figure;
0548     imagesc(slice,AVWVIEW.clim); 
0549     colormap(gray); axis off; zoom on;
0550     daspect(AVWVIEW.daspect);
0551     
0552     
0553     
0554     
0555     <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0556     
0557   <span class="keyword">case</span> <span class="string">'save_image'</span>,
0558     
0559     [filename, pathname] = uiputfile(<span class="keyword">...</span>
0560       { <span class="string">'*.png'</span>,<span class="string">'PNG Files (*.png)'</span>; <span class="keyword">...</span>
0561         <span class="string">'*.jpg'</span>,<span class="string">'JPG Files (*.jpg)'</span>; <span class="keyword">...</span>
0562         <span class="string">'*.ppm;*.pgm;*.pbm'</span>,<span class="string">'Portable Anymap (*.ppm,*.pgm,*.pbm)'</span>; <span class="keyword">...</span>
0563         <span class="string">'*.*'</span>,  <span class="string">'All Files (*.*)'</span>}, <span class="keyword">...</span>
0564       <span class="string">'IMWrite to file'</span>);
0565     
0566     <span class="keyword">if</span> filename,
0567       
0568       x = AVWVIEW.slices.sag;
0569       y = AVWVIEW.slices.cor;
0570       z = AVWVIEW.slices.axi;
0571       
0572       pixelsPerMM = 1 ./ double(AVWVIEW.avw.hdr.dime.pixdim(2:4));
0573       pixelsPerMeter = pixelsPerMM .* 1000;
0574       
0575       <span class="keyword">switch</span> AVWVIEW.view,
0576         <span class="keyword">case</span> <span class="string">'axi'</span>,
0577           slice = rot90(AVWVIEW.avw.img(:,:,z));
0578           xresolution = pixelsPerMeter(1);
0579           yresolution = pixelsPerMeter(2);
0580         <span class="keyword">case</span> <span class="string">'cor'</span>,
0581           slice = rot90(squeeze(AVWVIEW.avw.img(:,y,:)));
0582           xresolution = pixelsPerMeter(1);
0583           yresolution = pixelsPerMeter(3);
0584         <span class="keyword">case</span> <span class="string">'sag'</span>,
0585           slice = rot90(squeeze(AVWVIEW.avw.img(x,:,:)));
0586           xresolution = pixelsPerMeter(2);
0587           yresolution = pixelsPerMeter(3);
0588       <span class="keyword">end</span>
0589       
0590       <span class="comment">% scale the image values to between 0-1 for imwrite</span>
0591       <span class="comment">% (initially used max of slice, but actually want to</span>
0592       <span class="comment">% use the scaled intensity from the gui).</span>
0593       <span class="comment">%maxValue = max(max(slice));</span>
0594       <span class="comment">%scaledSlice = slice ./ maxValue;</span>
0595       scaledSlice = slice ./ AVWVIEW.clim(2);
0596       
0597       <span class="comment">% RGB = ind2rgb(X,map) converts the matrix X and corresponding</span>
0598       <span class="comment">% colormap map to RGB (truecolor)</span>
0599       
0600       file = [pathname,filename];
0601       fprintf(<span class="string">'saving to:...%s\n'</span>,file);
0602       
0603       <span class="comment">%Most of the supported image file formats store uint8 data.</span>
0604       <span class="comment">%PNG and TIFF formats additionally support uint16 data. For</span>
0605       <span class="comment">%grayscale and RGB images, if the data array is double, the</span>
0606       <span class="comment">%assumed dynamic range is [0,1]. The data array is automatically</span>
0607       <span class="comment">%scaled by 255 before being written as uint8. If the data array</span>
0608       <span class="comment">%is uint8 or uint16, it is written without scaling as uint8 or</span>
0609       <span class="comment">%uint16, respectively.</span>
0610       
0611       [pathname,filename,ext] = fileparts([pathname,filename]);
0612       
0613       <span class="keyword">switch</span> ext,
0614       
0615         <span class="keyword">case</span> <span class="string">'.png'</span>,
0616           <span class="comment">%imwrite(uint8(image),colormap,file,format);</span>
0617           <span class="comment">%imwrite(slice,colormap(gray),file,format,...</span>
0618           
0619           <span class="comment">%     'XResolution'  A scalar indicating the number of</span>
0620           <span class="comment">%                    pixels/unit in the horizontal direction</span>
0621           <span class="comment">%</span>
0622           <span class="comment">%     'YResolution'  A scalar indicating the number of</span>
0623           <span class="comment">%                    pixels/unit in the vertical direction</span>
0624           <span class="comment">%</span>
0625           <span class="comment">%     'ResolutionUnit' Either 'unknown' or 'meter'</span>
0626           format = <span class="string">'png'</span>;
0627           imwrite(scaledSlice,file,format,<span class="keyword">...</span>
0628             <span class="string">'BitDepth'</span>,16,<span class="string">'ResolutionUnit'</span>,<span class="string">'meter'</span>,<span class="keyword">...</span>
0629             <span class="string">'XResolution'</span>,xresolution,<span class="keyword">...</span>
0630             <span class="string">'YResolution'</span>,yresolution);
0631           
0632         <span class="keyword">case</span> <span class="string">'.jpg'</span>,
0633           format = <span class="string">'jpg'</span>;
0634           imwrite(scaledSlice,file,format);
0635         <span class="keyword">case</span> {<span class="string">'.ppm'</span>,<span class="string">'.pgm'</span>,<span class="string">'.pbm'</span>},
0636           format = ext(2:end);
0637           imwrite(scaledSlice,file,format);
0638         <span class="keyword">otherwise</span>
0639           fprintf(<span class="string">'...cannot write %s image files\n'</span>,ext);
0640       <span class="keyword">end</span>
0641     <span class="keyword">end</span>
0642     
0643     
0644     
0645     
0646     
0647   <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0648     
0649   <span class="keyword">case</span> <span class="string">'quit'</span>,
0650     
0651     flipStatus = get(AVWVIEW.handles.flipStatus,<span class="string">'string'</span>);
0652     <span class="keyword">if</span> strmatch(flipStatus,<span class="string">'L&gt;&gt;R (neurological)'</span>),
0653       fprintf(<span class="string">'...returning avw.img to radiological orientation;\n'</span>);
0654       fprintf(<span class="string">'...use avw_flip to permanently change the orientation.\n'</span>);
0655       AVWVIEW.avw.img = flipdim(AVWVIEW.avw.img,1);
0656     <span class="keyword">end</span>;
0657     
0658     <span class="comment">% try to assign back into the input struct</span>
0659     <span class="keyword">if</span> ~isempty(AVWVIEW.invarname),
0660       fprintf(<span class="string">'...returning data to base workspace struct ''%s''\n'</span>,AVWVIEW.invarname);
0661       assignin(<span class="string">'base'</span>,AVWVIEW.invarname,AVWVIEW.avw);
0662     <span class="keyword">elseif</span> evalin(<span class="string">'base'</span>,<span class="string">'exist(''mri'',''var'')'</span>),
0663       fprintf(<span class="string">'...returning data to base workspace struct ''mri''\n'</span>);
0664       string = [<span class="string">'AVWVIEW = get('</span>, num2str(AVWVIEW.gui),<span class="keyword">...</span>
0665           <span class="string">',''Userdata''); mri.data = AVWVIEW.avw; clear AVWVIEW;'</span>];
0666       evalin(<span class="string">'base'</span>,string);
0667     <span class="keyword">else</span>
0668       fprintf(<span class="string">'...returning data into base workspace struct ''avw''\n'</span>);
0669       assignin(<span class="string">'base'</span>,<span class="string">'avw'</span>,AVWVIEW.avw);
0670     <span class="keyword">end</span>
0671     close gcbf;
0672     
0673   <span class="keyword">otherwise</span>,
0674     
0675 <span class="keyword">end</span>
0676 
0677 
0678 <span class="keyword">switch</span> command,
0679   <span class="keyword">case</span> <span class="string">'quit'</span>,
0680   <span class="keyword">otherwise</span>,
0681     set(AVWVIEW.gui,<span class="string">'UserData'</span>,AVWVIEW);
0682 <span class="keyword">end</span>
0683 
0684 <span class="keyword">if</span> nargout &gt; 0,
0685   varargout{1} = AVWVIEW.avw;
0686 <span class="keyword">end</span>
0687 
0688 
0689 <span class="keyword">return</span>
0690 
0691 
0692 
0693 
0694 
0695 
0696 
0697 
0698 
0699 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0700 <span class="comment">% SUBFUNCTIONS</span>
0701 
0702 
0703 
0704 
0705 
0706 
0707 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0708 <a name="_sub1" href="#_subfunctions" class="code">function axial_update(AVWVIEW)</a>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -