📄 avw_view_test.html
字号:
0076 movegui(GUI,<span class="string">'center'</span>);0077 0078 AVWVIEW.gui = GUI;0079 0080 0081 Font.FontName = <span class="string">'Helvetica'</span>;0082 Font.FontUnits = <span class="string">'Pixels'</span>;0083 Font.FontSize = 12;0084 Font.FontWeight = <span class="string">'normal'</span>;0085 Font.FontAngle = <span class="string">'normal'</span>;0086 0087 0088 shading flat0089 0090 0091 <span class="comment">% Determine image size and origin (center)</span>0092 0093 xdim = size(avw.img,1);0094 ydim = size(avw.img,2);0095 zdim = size(avw.img,3);0096 0097 SagSlice = 1;0098 CorSlice = 1;0099 AxiSlice = 1;0100 <span class="keyword">if</span> xdim > 1, SagSlice = floor(xdim/2); <span class="keyword">end</span>0101 <span class="keyword">if</span> ydim > 1, CorSlice = floor(ydim/2); <span class="keyword">end</span>0102 <span class="keyword">if</span> zdim > 1, AxiSlice = floor(zdim/2); <span class="keyword">end</span>0103 0104 AVWVIEW.origin = [SagSlice,CorSlice,AxiSlice]; <span class="comment">% vol origin</span>0105 AVWVIEW.scale = double(avw.hdr.dime.pixdim(2:4)) ./ 1000; <span class="comment">% vol scale in meters</span>0106 0107 0108 <span class="comment">% Initialise some window handles, useful if the input image is only 2D</span>0109 G.Ha = 0;0110 G.Hc = 0;0111 G.Hs = 0;0112 0113 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0114 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0115 0116 <span class="comment">% Axial Slice</span>0117 <span class="keyword">if</span> xdim > 1 & ydim > 1,0118 0119 G.Aa = subplot(<span class="string">'position'</span>,[0.05 0.56 0.4 0.4]);0120 colormap(<span class="string">'gray'</span>);0121 0122 Saxial = squeeze(avw.img(:,:,AxiSlice));0123 G.Ha = imagesc([0,xdim],[0,ydim],Saxial');0124 set(gca,<span class="string">'YDir'</span>,<span class="string">'normal'</span>)0125 0126 axis square, daspect([1,1,1]);0127 xlabel(<span class="string">'(Left <<) X (>> Right)'</span>)0128 ylabel(<span class="string">'Y'</span>)0129 title(<span class="string">'Axial'</span>)0130 0131 <span class="comment">% This callback navigates with left click</span>0132 set(G.Ha,<span class="string">'ButtonDownFcn'</span>,<span class="keyword">...</span>0133 strcat(<span class="string">'AVWVIEW = get(gcbf,''Userdata''); '</span>,<span class="keyword">...</span>0134 <span class="string">'currentpoint = get(get(AVWVIEW.handles.Ha,''Parent''),''CurrentPoint''); '</span>,<span class="keyword">...</span>0135 <span class="string">'SagSlice = round(currentpoint(2,1)); '</span>,<span class="keyword">...</span>0136 <span class="string">'CorSlice = round(currentpoint(2,2)); '</span>,<span class="keyword">...</span>0137 <span class="string">'AxiSlice = round(str2num(get(AVWVIEW.handles.Taxi,''String''))); '</span>,<span class="keyword">...</span>0138 <span class="string">'imgvalue = double(AVWVIEW.avw.img(SagSlice,CorSlice,AxiSlice)); '</span>,<span class="keyword">...</span>0139 <span class="string">'set(AVWVIEW.handles.imval,''String'',sprintf(''%8.2f'',imgvalue));'</span>,<span class="keyword">...</span>0140 <span class="string">'set(AVWVIEW.gui,''UserData'',AVWVIEW);'</span>,<span class="keyword">...</span>0141 <span class="string">'if ishandle(AVWVIEW.handles.Hs) & AVWVIEW.handles.Hs, '</span>,<span class="keyword">...</span>0142 <span class="string">' Ssag = squeeze(AVWVIEW.avw.img(SagSlice,:,:));'</span>,<span class="keyword">...</span>0143 <span class="string">' set(AVWVIEW.handles.Hs,''CData'',Ssag''); '</span>,<span class="keyword">...</span>0144 <span class="string">' set(AVWVIEW.handles.Tsag,''String'',num2str(SagSlice));'</span>,<span class="keyword">...</span>0145 <span class="string">' set(AVWVIEW.handles.Ssag,''Value'',SagSlice);'</span>,<span class="keyword">...</span>0146 <span class="string">' clear Ssag; '</span>,<span class="keyword">...</span>0147 <span class="string">' set(AVWVIEW.gui,''UserData'',AVWVIEW);'</span>,<span class="keyword">...</span>0148 <span class="string">'end; '</span>,<span class="keyword">...</span>0149 <span class="string">'if ishandle(AVWVIEW.handles.Hc) & AVWVIEW.handles.Hc, '</span>,<span class="keyword">...</span>0150 <span class="string">' Scor = squeeze(AVWVIEW.avw.img(:,CorSlice,:));'</span>,<span class="keyword">...</span>0151 <span class="string">' set(AVWVIEW.handles.Hc,''CData'',Scor''); '</span>,<span class="keyword">...</span>0152 <span class="string">' set(AVWVIEW.handles.Tcor,''String'',num2str(CorSlice));'</span>,<span class="keyword">...</span>0153 <span class="string">' set(AVWVIEW.handles.Scor,''Value'',CorSlice);'</span>,<span class="keyword">...</span>0154 <span class="string">' clear Scor; '</span>,<span class="keyword">...</span>0155 <span class="string">' set(AVWVIEW.gui,''UserData'',AVWVIEW);'</span>,<span class="keyword">...</span>0156 <span class="string">'end; '</span>,<span class="keyword">...</span>0157 <span class="string">'clear currentpoint imgvalue AxiSlice CorSlice SagSlice AVWVIEW;'</span>));0158 0159 <span class="keyword">if</span> zdim > 1,0160 slider_step(1) = 1/(zdim);0161 slider_step(2) = 1/(zdim);0162 G.Saxi = uicontrol(<span class="string">'Parent'</span>,GUI,<span class="string">'Style'</span>,<span class="string">'slider'</span>,<span class="string">'Units'</span>,<span class="string">'Normalized'</span>, Font, <span class="keyword">...</span>0163 <span class="string">'Position'</span>,[.45 .56 .03 .40], <span class="string">'HorizontalAlignment'</span>, <span class="string">'center'</span>,<span class="keyword">...</span>0164 <span class="string">'BusyAction'</span>,<span class="string">'queue'</span>,<span class="keyword">...</span>0165 <span class="string">'Min'</span>,1,<span class="string">'Max'</span>,zdim,<span class="string">'SliderStep'</span>,slider_step,<span class="string">'Value'</span>,AxiSlice,<span class="keyword">...</span>0166 <span class="string">'Callback'</span>,strcat(<span class="string">'AVWVIEW = get(gcbf,''Userdata''); '</span>,<span class="keyword">...</span>0167 <span class="string">'AxiSlice = round(get(AVWVIEW.handles.Saxi,''Value''));'</span>,<span class="keyword">...</span>0168 <span class="string">'set(AVWVIEW.handles.Saxi,''Value'',AxiSlice);'</span>,<span class="keyword">...</span>0169 <span class="string">'Saxi = squeeze(AVWVIEW.avw.img(:,:,AxiSlice));'</span>,<span class="keyword">...</span>0170 <span class="string">'set(AVWVIEW.handles.Ha,''CData'',Saxi''); '</span>,<span class="keyword">...</span>0171 <span class="string">'set(AVWVIEW.handles.Taxi,''String'',num2str(AxiSlice));'</span>,<span class="keyword">...</span>0172 <span class="string">'CorSlice = round(get(AVWVIEW.handles.Scor,''Value''));'</span>,<span class="keyword">...</span>0173 <span class="string">'SagSlice = round(get(AVWVIEW.handles.Ssag,''Value''));'</span>,<span class="keyword">...</span>0174 <span class="string">'imgvalue = double(AVWVIEW.avw.img(SagSlice,CorSlice,AxiSlice)); '</span>,<span class="keyword">...</span>0175 <span class="string">'set(AVWVIEW.handles.imval,''String'',sprintf(''%8.2f'',imgvalue));'</span>,<span class="keyword">...</span>0176 <span class="string">'set(AVWVIEW.gui,''UserData'',AVWVIEW);'</span>,<span class="keyword">...</span>0177 <span class="string">'clear imgvalue Saxi AxiSlice CorSlice SagSlice AVWVIEW;'</span>));0178 <span class="keyword">end</span>0179 G.Taxi = uicontrol(<span class="string">'Parent'</span>,GUI,<span class="string">'Style'</span>,<span class="string">'text'</span>,<span class="string">'Units'</span>,<span class="string">'Normalized'</span>, Font, <span class="keyword">...</span>0180 <span class="string">'Position'</span>,[.45 .51 .03 .05], <span class="string">'HorizontalAlignment'</span>, <span class="string">'center'</span>,<span class="keyword">...</span>0181 <span class="string">'BusyAction'</span>,<span class="string">'queue'</span>,<span class="keyword">...</span>0182 <span class="string">'String'</span>,num2str(AxiSlice));0183 <span class="keyword">end</span>0184 0185 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0186 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0187 0188 <span class="comment">% Coronal Slice</span>0189 <span class="keyword">if</span> xdim > 1 & zdim > 1,0190 0191 subplot(<span class="string">'position'</span>,[0.55 0.56 0.4 0.4])0192 colormap(<span class="string">'gray'</span>);0193 0194 Scor = squeeze(avw.img(:,CorSlice,:));0195 G.Hc = imagesc([0,ydim],[0,zdim],Scor');0196 set(gca,<span class="string">'YDir'</span>,<span class="string">'normal'</span>)0197 0198 axis square, daspect([1,1,1]);0199 xlabel(<span class="string">'(Left <<) X (>> Right)'</span>)0200 ylabel(<span class="string">'Z'</span>)0201 title(<span class="string">'Coronal'</span>)0202 0203 <span class="comment">% This callback navigates with left click</span>0204 set(G.Hc,<span class="string">'ButtonDownFcn'</span>,<span class="keyword">...</span>0205 strcat(<span class="string">'AVWVIEW = get(gcbf,''Userdata''); '</span>,<span class="keyword">...</span>0206 <span class="string">'currentpoint = get(get(AVWVIEW.handles.Hc,''Parent''),''CurrentPoint''); '</span>,<span class="keyword">...</span>0207 <span class="string">'SagSlice = round(currentpoint(2,1)); '</span>,<span class="keyword">...</span>0208 <span class="string">'AxiSlice = round(currentpoint(2,2)); '</span>,<span class="keyword">...</span>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -