📄 avw_view_new.html
字号:
0709
0710 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'axial_image'</span>),
0711 Saxi = squeeze(AVWVIEW.avw.img(:,:,AVWVIEW.slices.axi));
0712 set(AVWVIEW.handles.axial_image,<span class="string">'CData'</span>,Saxi');
0713 <span class="keyword">end</span>
0714 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'axial_sliderN'</span>),
0715 set(AVWVIEW.handles.axial_sliderN,<span class="string">'String'</span>,num2str(AVWVIEW.slices.axi));
0716 set(AVWVIEW.handles.axial_sliderN,<span class="string">'Value'</span>,AVWVIEW.slices.axi);
0717 <span class="keyword">end</span>
0718 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'axial_slider'</span>),
0719 set(AVWVIEW.handles.axial_slider,<span class="string">'Value'</span>,AVWVIEW.slices.axi);
0720 <span class="keyword">end</span>;
0721
0722 <span class="keyword">return</span>
0723
0724
0725 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0726 <a name="_sub2" href="#_subfunctions" class="code">function coronal_update(AVWVIEW)</a>
0727
0728 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'coronal_image'</span>),
0729 Scor = squeeze(AVWVIEW.avw.img(:,AVWVIEW.slices.cor,:));
0730 set(AVWVIEW.handles.coronal_image,<span class="string">'CData'</span>,Scor');
0731 <span class="keyword">end</span>
0732 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'coronal_sliderN'</span>),
0733 set(AVWVIEW.handles.coronal_sliderN,<span class="string">'String'</span>,num2str(AVWVIEW.slices.cor));
0734 set(AVWVIEW.handles.coronal_sliderN,<span class="string">'Value'</span>,AVWVIEW.slices.cor);
0735 <span class="keyword">end</span>
0736 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'coronal_slider'</span>),
0737 set(AVWVIEW.handles.coronal_slider,<span class="string">'Value'</span>,AVWVIEW.slices.cor);
0738 <span class="keyword">end</span>;
0739
0740 <span class="keyword">return</span>
0741
0742
0743 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0744 <a name="_sub3" href="#_subfunctions" class="code">function sagittal_update(AVWVIEW)</a>
0745
0746 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'sagittal_image'</span>),
0747 Ssag = squeeze(AVWVIEW.avw.img(AVWVIEW.slices.sag,:,:));
0748 set(AVWVIEW.handles.sagittal_image,<span class="string">'CData'</span>,Ssag');
0749 <span class="keyword">end</span>
0750 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'sagittal_sliderN'</span>),
0751 set(AVWVIEW.handles.sagittal_sliderN,<span class="string">'String'</span>,num2str(AVWVIEW.slices.sag));
0752 set(AVWVIEW.handles.sagittal_sliderN,<span class="string">'Value'</span>,AVWVIEW.slices.sag);
0753 <span class="keyword">end</span>
0754 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'sagittal_slider'</span>),
0755 set(AVWVIEW.handles.sagittal_slider,<span class="string">'Value'</span>,AVWVIEW.slices.sag);
0756 <span class="keyword">end</span>;
0757
0758 <span class="keyword">return</span>
0759
0760
0761 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0762 <a name="_sub4" href="#_subfunctions" class="code">function AVWVIEW = set_crosshairs(AVWVIEW)</a>
0763
0764 current_axes = gca;
0765
0766 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'axial_axes'</span>),
0767 axes(AVWVIEW.handles.axial_axes);
0768 <span class="keyword">if</span> ishandle(AVWVIEW.handles.axial_xline),
0769 delete(AVWVIEW.handles.axial_xline);
0770 <span class="keyword">end</span>
0771 <span class="keyword">if</span> ishandle(AVWVIEW.handles.axial_yline),
0772 delete(AVWVIEW.handles.axial_yline);
0773 <span class="keyword">end</span>
0774
0775 AVWVIEW.handles.axial_xlim = get(AVWVIEW.handles.axial_axes,<span class="string">'Xlim'</span>);
0776 AVWVIEW.handles.axial_ylim = get(AVWVIEW.handles.axial_axes,<span class="string">'Ylim'</span>);
0777 AVWVIEW.handles.axial_xline = line(<span class="string">'Xdata'</span>,[AVWVIEW.slices.sag AVWVIEW.slices.sag],<span class="string">'Ydata'</span>,AVWVIEW.handles.axial_ylim);
0778 AVWVIEW.handles.axial_yline = line(<span class="string">'Ydata'</span>,[AVWVIEW.slices.cor AVWVIEW.slices.cor],<span class="string">'Xdata'</span>,AVWVIEW.handles.axial_xlim);
0779 set(AVWVIEW.handles.axial_xline,<span class="string">'Color'</span>,<span class="string">'b'</span>,<span class="string">'EraseMode'</span>,<span class="string">'xor'</span>,<span class="string">'Tag'</span>,<span class="string">'XLINE'</span>);
0780 set(AVWVIEW.handles.axial_yline,<span class="string">'Color'</span>,<span class="string">'b'</span>,<span class="string">'EraseMode'</span>,<span class="string">'xor'</span>,<span class="string">'Tag'</span>,<span class="string">'YLINE'</span>);
0781
0782 <span class="keyword">if</span> get(AVWVIEW.handles.crosshairs,<span class="string">'value'</span>),
0783 set(AVWVIEW.handles.axial_xline,<span class="string">'visible'</span>,<span class="string">'on'</span>);
0784 set(AVWVIEW.handles.axial_yline,<span class="string">'visible'</span>,<span class="string">'on'</span>);
0785 <span class="keyword">else</span>
0786 set(AVWVIEW.handles.axial_xline,<span class="string">'visible'</span>,<span class="string">'off'</span>);
0787 set(AVWVIEW.handles.axial_yline,<span class="string">'visible'</span>,<span class="string">'off'</span>);
0788 <span class="keyword">end</span>
0789
0790 <span class="keyword">end</span>
0791
0792 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'coronal_axes'</span>),
0793
0794 axes(AVWVIEW.handles.coronal_axes);
0795 <span class="keyword">if</span> ishandle(AVWVIEW.handles.coronal_xline),
0796 delete(AVWVIEW.handles.coronal_xline);
0797 <span class="keyword">end</span>
0798 <span class="keyword">if</span> ishandle(AVWVIEW.handles.coronal_yline),
0799 delete(AVWVIEW.handles.coronal_yline);
0800 <span class="keyword">end</span>
0801
0802 AVWVIEW.handles.coronal_xlim = get(AVWVIEW.handles.coronal_axes,<span class="string">'Xlim'</span>);
0803 AVWVIEW.handles.coronal_ylim = get(AVWVIEW.handles.coronal_axes,<span class="string">'Ylim'</span>);
0804 AVWVIEW.handles.coronal_xline = line(<span class="string">'Xdata'</span>,[AVWVIEW.slices.sag AVWVIEW.slices.sag],<span class="string">'Ydata'</span>,AVWVIEW.handles.coronal_ylim);
0805 AVWVIEW.handles.coronal_yline = line(<span class="string">'Ydata'</span>,[AVWVIEW.slices.axi AVWVIEW.slices.axi],<span class="string">'Xdata'</span>,AVWVIEW.handles.coronal_xlim);
0806 set(AVWVIEW.handles.coronal_xline,<span class="string">'Color'</span>,<span class="string">'b'</span>,<span class="string">'EraseMode'</span>,<span class="string">'xor'</span>,<span class="string">'Tag'</span>,<span class="string">'XLINE'</span>);
0807 set(AVWVIEW.handles.coronal_yline,<span class="string">'Color'</span>,<span class="string">'b'</span>,<span class="string">'EraseMode'</span>,<span class="string">'xor'</span>,<span class="string">'Tag'</span>,<span class="string">'YLINE'</span>);
0808
0809 <span class="keyword">if</span> get(AVWVIEW.handles.crosshairs,<span class="string">'value'</span>),
0810 set(AVWVIEW.handles.coronal_xline,<span class="string">'visible'</span>,<span class="string">'on'</span>);
0811 set(AVWVIEW.handles.coronal_yline,<span class="string">'visible'</span>,<span class="string">'on'</span>);
0812 <span class="keyword">else</span>
0813 set(AVWVIEW.handles.coronal_xline,<span class="string">'visible'</span>,<span class="string">'off'</span>);
0814 set(AVWVIEW.handles.coronal_yline,<span class="string">'visible'</span>,<span class="string">'off'</span>);
0815 <span class="keyword">end</span>
0816
0817 <span class="keyword">end</span>
0818
0819 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'sagittal_axes'</span>),
0820 axes(AVWVIEW.handles.sagittal_axes);
0821 <span class="keyword">if</span> ishandle(AVWVIEW.handles.sagittal_xline),
0822 delete(AVWVIEW.handles.sagittal_xline);
0823 <span class="keyword">end</span>
0824 <span class="keyword">if</span> ishandle(AVWVIEW.handles.sagittal_yline),
0825 delete(AVWVIEW.handles.sagittal_yline);
0826 <span class="keyword">end</span>
0827
0828 AVWVIEW.handles.sagittal_xlim = get(AVWVIEW.handles.sagittal_axes,<span class="string">'Xlim'</span>);
0829 AVWVIEW.handles.sagittal_ylim = get(AVWVIEW.handles.sagittal_axes,<span class="string">'Ylim'</span>);
0830 AVWVIEW.handles.sagittal_xline = line(<span class="string">'Xdata'</span>,[AVWVIEW.slices.cor AVWVIEW.slices.cor],<span class="string">'Ydata'</span>,AVWVIEW.handles.sagittal_ylim);
0831 AVWVIEW.handles.sagittal_yline = line(<span class="string">'Ydata'</span>,[AVWVIEW.slices.axi AVWVIEW.slices.axi],<span class="string">'Xdata'</span>,AVWVIEW.handles.sagittal_xlim);
0832 set(AVWVIEW.handles.sagittal_xline,<span class="string">'Color'</span>,<span class="string">'b'</span>,<span class="string">'EraseMode'</span>,<span class="string">'xor'</span>,<span class="string">'Tag'</span>,<span class="string">'XLINE'</span>);
0833 set(AVWVIEW.handles.sagittal_yline,<span class="string">'Color'</span>,<span class="string">'b'</span>,<span class="string">'EraseMode'</span>,<span class="string">'xor'</span>,<span class="string">'Tag'</span>,<span class="string">'YLINE'</span>);
0834
0835 <span class="keyword">if</span> get(AVWVIEW.handles.crosshairs,<span class="string">'value'</span>),
0836 set(AVWVIEW.handles.sagittal_xline,<span class="string">'visible'</span>,<span class="string">'on'</span>);
0837 set(AVWVIEW.handles.sagittal_yline,<span class="string">'visible'</span>,<span class="string">'on'</span>);
0838 <span class="keyword">else</span>
0839 set(AVWVIEW.handles.sagittal_xline,<span class="string">'visible'</span>,<span class="string">'off'</span>);
0840 set(AVWVIEW.handles.sagittal_yline,<span class="string">'visible'</span>,<span class="string">'off'</span>);
0841 <span class="keyword">end</span>
0842
0843 <span class="keyword">end</span>
0844
0845 axes(current_axes);
0846
0847 <span class="keyword">return</span>
0848
0849
0850 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0851 <a name="_sub5" href="#_subfunctions" class="code">function AVWVIEW = set_coordinates(AVWVIEW)</a>
0852
0853 <span class="comment">% set the axis coordinates to voxels, mm or meters</span>
0854
0855 s = size(AVWVIEW.avw.img);
0856 <span class="keyword">if</span> length(s) > 0, xdim = s(1); <span class="keyword">else</span> xdim = 1; <span class="keyword">end</span>
0857 <span class="keyword">if</span> length(s) > 1, ydim = s(2); <span class="keyword">else</span> ydim = 1; <span class="keyword">end</span>
0858 <span class="keyword">if</span> length(s) > 2, zdim = s(3); <span class="keyword">else</span> zdim = 1; <span class="keyword">end</span>
0859
0860 <span class="comment">% initialise for voxel coordinates</span>
0861 xpixdim = double(AVWVIEW.avw.hdr.dime.pixdim(2));
0862 ypixdim = double(AVWVIEW.avw.hdr.dime.pixdim(3));
0863 zpixdim = double(AVWVIEW.avw.hdr.dime.pixdim(4));
0864 xdata = [0 xdim];
0865 ydata = [0 ydim];
0866 zdata = [0 zdim];
0867
0868 aspect = 1./AVWVIEW.daspect; <span class="comment">%AVWVIEW.avw.hdr.dime.pixdim(2:4);</span>
0869
0870
0871 <span class="keyword">if</span> get(AVWVIEW.handles.coord,<span class="string">'value'</span>) == 2, <span class="comment">% mm</span>
0872 xdata = xdata .* xpixdim;
0873 ydata = ydata .* ypixdim;
0874 zdata = zdata .* zpixdim;
0875 aspect = [1 1 1];
0876 <span class="keyword">end</span>
0877
0878 <span class="keyword">if</span> get(AVWVIEW.handles.coord,<span class="string">'value'</span>) == 3, <span class="comment">% meters</span>
0879 xpixdim = xpixdim / 1000;
0880 ypixdim = ypixdim / 1000;
0881 zpixdim = zpixdim / 1000;
0882 xdata = xdata .* xpixdim;
0883 ydata = ydata .* ypixdim;
0884 zdata = zdata .* zpixdim;
0885 aspect = [1 1 1];
0886 <span class="keyword">end</span>
0887
0888
0889 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'axial_image'</span>),
0890 set(AVWVIEW.handles.axial_axes,<span class="string">'Xlim'</span>,xdata);
0891 set(AVWVIEW.handles.axial_axes,<span class="string">'Ylim'</span>,ydata);
0892 set(AVWVIEW.handles.axial_axes,<span class="string">'Zlim'</span>,zdata);
0893 set(AVWVIEW.handles.axial_image,<span class="string">'Xdata'</span>,xdata);
0894 set(AVWVIEW.handles.axial_image,<span class="string">'Ydata'</span>,ydata);
0895 daspect(AVWVIEW.handles.axial_axes,aspect([1 2 3]));
0896 <span class="keyword">end</span>;
0897 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'coronal_image'</span>),
0898 set(AVWVIEW.handles.coronal_axes,<span class="string">'Xlim'</span>,xdata);
0899 set(AVWVIEW.handles.coronal_axes,<span class="string">'Ylim'</span>,zdata);
0900 set(AVWVIEW.handles.coronal_axes,<span class="string">'Zlim'</span>,ydata);
0901 set(AVWVIEW.handles.coronal_image,<span class="string">'Xdata'</span>,xdata);
0902 set(AVWVIEW.handles.coronal_image,<span class="string">'Ydata'</span>,zdata);
0903 daspect(AVWVIEW.handles.coronal_axes,aspect([1 3 2]));
0904 <span class="keyword">end</span>;
0905 <span class="keyword">if</span> isfield(AVWVIEW.handles,<span class="string">'sagittal_image'</span>)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -