Changeset 190 for aedes.m


Ignore:
Timestamp:
Jan 26, 2012, 1:28:29 PM (7 years ago)
Author:
tjniskan
Message:
  • Added an option for saving overlay to file (NIfTI or MAT).

M aedes.m
M aedes_revision.m

File:
1 edited

Legend:

Unmodified
Added
Removed
  • aedes.m

    r189 r190  
    583583                        'separator','on',...
    584584                        'enable','on');
     585H.UIOVERLAY_SAVE = uimenu(H.UIOVERLAY,'Label','Save Overlay to file', ...
     586                              'callback',{@l_OverlayControls,'save'},...
     587                              'separator','on',...
     588                              'enable','off');
    585589
    586590H.UIOVERLAY_CONTROLS = uimenu(H.UIOVERLAY,'Label','Show Overlay Controls', ...
     
    28642868% Disable overlay uimenus
    28652869set([H.UIOVERLAY_CONTROLS,...
    2866      H.UIOVERLAY_DELETE],'enable','off')
     2870        H.UIOVERLAY_SAVE,...
     2871        H.UIOVERLAY_DELETE],'enable','off')
    28672872
    28682873% Reset volume button and editbox
     
    33653370% Initialize variables for imagemask
    33663371Dat.ImageOverlay = [];
     3372Dat.ImageOverlayOrig = [];
    33673373Dat.isImageOverlayLoaded = false;
    33683374
     
    42584264
    42594265Dat.ImageOverlay=tmp_data.FTDATA;
     4266Dat.ImageOverlayOrig = tmp_data.FTDATA;
    42604267clear tmp_data;
    42614268
     
    43554362% Enable uimenus
    43564363set([H.UIOVERLAY_CONTROLS,...
    4357      H.UIOVERLAY_DELETE],'enable','on')
     4364        H.UIOVERLAY_SAVE,...
     4365        H.UIOVERLAY_DELETE],'enable','on')
    43584366
    43594367
     
    46114619  % Delete image overlay
    46124620  Dat.ImageOverlay = [];
     4621        Dat.ImageOverlayOrig = [];
    46134622  Dat.isImageOverlayLoaded = false;
    46144623 
     
    46244633  % Disable overlay uimenus
    46254634  set([H.UIOVERLAY_CONTROLS,...
    4626        H.UIOVERLAY_DELETE],'enable','off')
    4627  
     4635                H.UIOVERLAY_SAVE,...
     4636                H.UIOVERLAY_DELETE],'enable','off')
     4637elseif strcmpi(opt,'save')
     4638        % Save overlay to file ------------------------------
     4639       
     4640        if isempty(Dat.ImageOverlayOrig)
     4641                errordlg('Cannot save overlay. Overlay is not loaded.',...
     4642                        'Cannot save overlay.','modal');
     4643                return
     4644        end
     4645       
     4646        % Get default save directory
     4647        if ispref('Aedes','PutOverlayFileDir')
     4648                default_dir = getpref('Aedes','PutOverlayFileDir');
     4649        else
     4650                default_dir = [pwd,filesep];
     4651        end
     4652        default_fname = 'overlay';
     4653       
     4654        % Prompt for a file
     4655        [fname,fpath,findex] = uiputfile({'*.nii','NIfTI files (*.nii)';...
     4656                '*.mat','Matlab MAT files (*.mat)'},...
     4657                'Save overlay as...',[default_dir,default_fname]);
     4658        if isequal(fname,0)
     4659                % Canceled
     4660                return
     4661        end
     4662       
     4663        % Check if NIfTI or MAT file should be saved
     4664        if findex == 1
     4665                saveformat = 'nifti';
     4666        else
     4667                saveformat = 'mat';
     4668        end
     4669       
     4670        switch saveformat
     4671                case 'nifti' % -----------------------
     4672                       
     4673                        % Check filename
     4674                        if length(fname)<4 || ~strcmpi(fname(end-3:end),'.nii')
     4675                                fname = [fname,'.nii'];
     4676                        end
     4677                       
     4678                        try
     4679                                aedes_write_nifti(Dat.ImageOverlayOrig,[fpath,fname]);
     4680                        catch
     4681                                errordlg({'Error writing NIfTI file.',...
     4682                                        [fpath,fname],...
     4683                                        '',...
     4684                                        lasterr},...
     4685                                        'Could not write NIfTI file','modal');
     4686                                return
     4687                        end
     4688                       
     4689                case 'mat' % -----------------------
     4690                       
     4691                        % Check filename
     4692                        if length(fname)<4 || ~strcmpi(fname(end-3:end),'.mat')
     4693                                fname = [fname,'.mat'];
     4694                        end
     4695                       
     4696                         if isfield(inputOverlay,'ImageOverlayTholdDirPos')
     4697      Dat.ImageOverlayTholdDirPos = inputOverlay.ImageOverlayTholdDirPos;
     4698    end
     4699    if isfield(inputOverlay,'ImageOverlayAlpha')
     4700      Dat.ImageOverlayAlpha = inputOverlay.ImageOverlayAlpha;
     4701    end
     4702    if isfield(inputOverlay,'ImageOverlayThold')
     4703      Dat.ImageOverlayThold = inputOverlay.ImageOverlayThold;
     4704    end
     4705    if isfield(inputOverlay,'ImOverlayMin')
     4706      Dat.ImageOverlayClim(1) = inputOverlay.ImOverlayMin;
     4707    end
     4708    if isfield(inputOverlay,'ImOverlayMax')
     4709      Dat.ImageOverlayClim(2) = inputOverlay.ImOverlayMax;
     4710    end
     4711                       
     4712                        try
     4713                                data.DataFormat = 'mat';
     4714                                data.HDR.fname = '';
     4715                                data.HDR.fpath = '';
     4716                                data.HDR.FileHeader.ImageOverlayThold = Dat.ImageOverlayThold;
     4717                                data.HDR.FileHeader.ImageOverlayTholdDirPos = Dat.ImageOverlayTholdDirPos;
     4718                                data.HDR.FileHeader.ImageOverlayClim = Dat.ImageOverlayClim;
     4719                                data.FTDATA = Dat.ImageOverlayOrig;
     4720                                data.KSPACE = [];
     4721                                data.PROCPAR = [];
     4722                                data.PHASETABLE = [];
     4723                                save([fpath,fname],'data','-mat');
     4724                                clear data
     4725                        catch
     4726                                errordlg({'Error saving overlay to MAT file.',...
     4727                                        [fpath,fname],...
     4728                                        '',...
     4729                                        lasterr},...
     4730                                        'Could not write MAT file','modal');
     4731                                return
     4732                        end
     4733                       
     4734                otherwise
     4735                        error('Unknown save format for overlay "%s".',saveformat);
     4736        end
     4737       
     4738        % Put save directory to preferences
     4739        try
     4740                setpref('Aedes','PutOverlayFileDir',fpath);
     4741        catch
     4742                warning('Could not save overlay directory preferences.');
     4743        end
     4744       
    46284745end
    46294746 
Note: See TracChangeset for help on using the changeset viewer.

Powered by Trac 1.0.9.Copyright © Juha-Pekka Niskanen 2008