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

📄 avw_view_v5.m

📁 mri_toolbox是一个工具用来MRI. 来自于SourceForge, 我上传这个软件,希望能结识对医疗软件感兴趣的兄弟.
💻 M
📖 第 1 页 / 共 2 页
字号:
            'set(AVWVIEW.handles.imval,''String'',sprintf(''%8.2f'',imgvalue));',...
            'set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
            'clear imgvalue Scor AxiSlice CorSlice SagSlice AVWVIEW;'));
    end
G.Tcor = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
        'Position',[.95 .51 .03 .05], 'HorizontalAlignment', 'center',...
        'BusyAction','queue',...
        'String',num2str(CorSlice));
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Sagittal Slice
if ydim > 1 & ydim > 1,

[y,z] = meshgrid(1:ydim,1:zdim);
Ysag = y'; clear y;
Zsag = z'; clear z;
Xsag = zeros(ydim,zdim);

subplot('position',[0.05 0.06 0.4 0.4])
colormap('gray');
    
Ssag = squeeze(avw.img(SagSlice,:,:));
    G.Hs = imagesc([0,ydim],[0,zdim],Ssag');
    set(gca,'YDir','normal','YColor',[1 1 1],'XColor',[1 1 1])
    
    daspect(AVWVIEW.daspect([3 2 1]));
    
    xlabel('Y')
ylabel('Z')
title('Sagittal')

% This callback navigates with mouse click
set(G.Hs,'ButtonDownFcn',...
        strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
        'currentpoint = get(get(AVWVIEW.handles.Hs,''Parent''),''CurrentPoint''); ',...
        'CorSlice = round(currentpoint(1,1)); ',...
        'AxiSlice = round(currentpoint(1,2)); ',...
        'SagSlice = round(str2num(get(AVWVIEW.handles.Tsag,''String'')));',...
        'imgvalue = double(AVWVIEW.avw.img(SagSlice,CorSlice,AxiSlice)); ',...
        'set(AVWVIEW.handles.imval,''String'',sprintf(''%8.2f'',imgvalue));',...
        'set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
        'if ishandle(AVWVIEW.handles.Hc) & AVWVIEW.handles.Hc, ',...
        '   Scor = squeeze(AVWVIEW.avw.img(:,CorSlice,:));',...
        '   set(AVWVIEW.handles.Hc,''CData'',Scor''); ',...
        '   set(AVWVIEW.handles.Tcor,''String'',num2str(CorSlice));',...
        '   set(AVWVIEW.handles.Scor,''Value'',CorSlice);',...
        '   clear Scor; ',...
        '   set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
        'end; ',...
        'if ishandle(AVWVIEW.handles.Ha) & AVWVIEW.handles.Ha, ',...
        '   Saxi = squeeze(AVWVIEW.avw.img(:,:,AxiSlice));',...
        '   set(AVWVIEW.handles.Ha,''CData'',Saxi''); ',...
        '   set(AVWVIEW.handles.Taxi,''String'',num2str(AxiSlice));',...
        '   set(AVWVIEW.handles.Saxi,''Value'',AxiSlice);',...
        '   clear Saxi; ',...
        '   set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
        'end; ',...
        'clear currentpoint imgvalue AxiSlice CorSlice SagSlice AVWVIEW;'));

    
    if xdim > 1,
slider_step(1) = 1/(xdim);
slider_step(2) = 1/(xdim);
G.Ssag = uicontrol('Parent',GUI,'Style','slider','Units','Normalized', Font, ...
            'Position',[.45 .06 .03 .4], 'HorizontalAlignment', 'center',...
            'BusyAction','queue',...
            'Min',1,'Max',xdim,'SliderStep',slider_step,'Value',SagSlice,...
            'Callback',strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
            'SagSlice = round(get(AVWVIEW.handles.Ssag,''Value''));',...
            'set(AVWVIEW.handles.Ssag,''Value'',SagSlice);',...
            'Ssag = squeeze(AVWVIEW.avw.img(SagSlice,:,:));',...
            'set(AVWVIEW.handles.Hs,''CData'',Ssag); drawnow;',...
            'set(AVWVIEW.handles.Tsag,''String'',num2str(SagSlice));',...
            'AxiSlice = round(get(AVWVIEW.handles.Saxi,''Value''));',...
            'CorSlice = round(get(AVWVIEW.handles.Scor,''Value''));',...
            'imgvalue = double(AVWVIEW.avw.img(SagSlice,CorSlice,AxiSlice)); ',...
            'set(AVWVIEW.handles.imval,''String'',sprintf(''%8.2f'',imgvalue));',...
            'set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
            'clear imgvalue Ssag AxiSlice CorSlice SagSlice AVWVIEW;'));
    end
G.Tsag = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
        'Position',[.45 .01 .03 .05], 'HorizontalAlignment', 'center',...
        'BusyAction','queue',...
        'String',num2str(SagSlice));
end



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Intensity Value at Mouse Click

G.Timval = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
    'Position',[.575 .40 .20 .05], 'HorizontalAlignment', 'left',...
    'BackgroundColor', [0 0 0],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'String','Image Intensity');
G.imval = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
    'Position',[.775 .40 .20 .05], 'HorizontalAlignment', 'right',...
    'BackgroundColor', [0 0 0],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'String','x');

% Nasion Location
G.Tnasion = uicontrol('Parent',GUI,'Style','pushbutton','Units','Normalized', Font, ...
    'Position',[.575 .35 .20 .04], 'HorizontalAlignment', 'left',...
    'BackgroundColor', [.3 .3 .3],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'TooltipString','Update Nasion - should be toward +Y',...
    'String','Fiducial: Nasion',...
    'Callback',strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
            'SagSlice = get(AVWVIEW.handles.Ssag,''Value'');',...
            'CorSlice = get(AVWVIEW.handles.Scor,''Value'');',...
            'AxiSlice = get(AVWVIEW.handles.Saxi,''Value'');',...
            'imgXYZ   = [SagSlice,CorSlice,AxiSlice]; ',...
            'imgXYZ = (imgXYZ - AVWVIEW.origin) .* AVWVIEW.scale; ',...
            'set(AVWVIEW.handles.nasion,''String'',sprintf(''%6.3f %6.3f %6.3f'',imgXYZ));',...
            'AVWVIEW.p.mriFID(1,:) = imgXYZ; ',...
            'set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
            'clear imgXYZ AxiSlice CorSlice SagSlice AVWVIEW;'));
G.nasion = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
    'Position',[.775 .35 .20 .04], 'HorizontalAlignment', 'right',...
    'BackgroundColor', [0 0 0],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'TooltipString','In meters, origin at (0,0,0), should be toward +Y',...
    'String','x,y,z');

% Right Preauricular Location
G.Trpa = uicontrol('Parent',GUI,'Style','pushbutton','Units','Normalized', Font, ...
    'Position',[.575 .30 .20 .04], 'HorizontalAlignment', 'left',...
    'BackgroundColor', [.3 .3 .3],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'TooltipString','Update Right Preauricular - should be toward +X',...
    'String','Fiducial: RPA',...
    'Callback',strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
            'SagSlice = get(AVWVIEW.handles.Ssag,''Value'');',...
            'CorSlice = get(AVWVIEW.handles.Scor,''Value'');',...
            'AxiSlice = get(AVWVIEW.handles.Saxi,''Value'');',...
            'imgXYZ   = [SagSlice,CorSlice,AxiSlice]; ',...
            'imgXYZ = (imgXYZ - AVWVIEW.origin) .* AVWVIEW.scale; ',...
            'set(AVWVIEW.handles.rpa,''String'',sprintf(''%6.3f %6.3f %6.3f'',imgXYZ));',...
            'AVWVIEW.p.mriFID(2,:) = imgXYZ; ',...
            'set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
            'clear imgXYZ AxiSlice CorSlice SagSlice AVWVIEW;'));
G.rpa = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
    'Position',[.775 .30 .20 .04], 'HorizontalAlignment', 'right',...
    'BackgroundColor', [0 0 0],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'TooltipString','In meters, origin at (0,0,0), should be toward +X',...
    'String','x,y,z');

% Left Preauricular Location
G.Tlpa = uicontrol('Parent',GUI,'Style','pushbutton','Units','Normalized', Font, ...
    'Position',[.575 .25 .20 .04], 'HorizontalAlignment', 'left',...
    'BackgroundColor', [.3 .3 .3],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'TooltipString','Update Left Preauricular - should be toward -X',...
    'String','Fiducial: LPA',...
    'Callback',strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
            'SagSlice = get(AVWVIEW.handles.Ssag,''Value'');',...
            'CorSlice = get(AVWVIEW.handles.Scor,''Value'');',...
            'AxiSlice = get(AVWVIEW.handles.Saxi,''Value'');',...
            'imgXYZ   = [SagSlice,CorSlice,AxiSlice]; ',...
            'imgXYZ = (imgXYZ - AVWVIEW.origin) .* AVWVIEW.scale; ',...
            'set(AVWVIEW.handles.lpa,''String'',sprintf(''%6.3f %6.3f %6.3f'',imgXYZ));',...
            'AVWVIEW.p.mriFID(3,:) = imgXYZ; ',...
            'set(AVWVIEW.gui,''UserData'',AVWVIEW);',...
            'clear imgXYZ AxiSlice CorSlice SagSlice AVWVIEW;'));
G.lpa = uicontrol('Parent',GUI,'Style','text','Units','Normalized', Font, ...
    'Position',[.775 .25 .20 .04], 'HorizontalAlignment', 'right',...
    'BackgroundColor', [0 0 0],...
    'ForegroundColor', [1 1 1],...
    'BusyAction','queue',...
    'TooltipString','In meters, origin at (0,0,0), should be toward -X',...
    'String','x,y,z');






%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Font.FontWeight = 'bold';

% OK: Return the avw!
G.Bhdr = uicontrol('Parent',GUI,'Style','pushbutton','Units','Normalized', Font, ...
    'Position',[.8 .01 .08 .04],...
    'String','HDR','BusyAction','queue',...
    'TooltipString','Save the hdr parameters.',...
    'BackgroundColor',[0.0 0.0 0.5],...
    'ForegroundColor',[1 1 1], 'HorizontalAlignment', 'center',...
    'Callback',strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
        'avw_view_hdr(AVWVIEW.avw);',...
        'clear AVWVIEW;'));

% Cancel
G.Bquit = uicontrol('Parent',GUI,'Style','pushbutton','Units','Normalized', Font, ...
    'Position',[.9 .01 .08 .04],...
    'String','RETURN','BusyAction','queue',...
    'BackgroundColor',[0.75 0.0 0.0],...
    'ForegroundColor', [1 1 1], 'HorizontalAlignment', 'center',...
    'Callback',strcat('AVWVIEW = get(gcbf,''Userdata''); ',...
        'if isfield(AVWVIEW,''p''), ',...
        '  if isfield(AVWVIEW.p,''mriFID''), ',...
        '    if exist(''p'',''var''), ',...
        '      p.mriFID = AVWVIEW.p.mriFID; ',...
        '    else, ',...
        '      mriFID = AVWVIEW.p.mriFID;',...
        '    end; ',...
        '  end; ',...
        'end; ',...
        'clear AVWVIEW; close gcbf;'));

% Update the gui_struct handles for this gui
AVWVIEW.avw = avw;
AVWVIEW.handles = G;
set(AVWVIEW.gui,'Userdata',AVWVIEW);
set(AVWVIEW.gui,'HandleVisibility','callback');

return


function slice_img(avw),

    figure
    xslice = 128;
    slice = squeeze( avw.img(xslice,:,:) );
    imagesc(slice); axis image; colormap('gray')
    figure
    yslice = 128;
    slice = squeeze( avw.img(:,yslice,:) );
    imagesc(slice); axis image; colormap('gray')
    figure
    zslice = 128;
    slice = squeeze( avw.img(:,:,zslice) );
    imagesc(slice); axis image; colormap('gray')

return

⌨️ 快捷键说明

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