Changeset 159 for aedes.m


Ignore:
Timestamp:
Feb 16, 2011, 3:34:15 PM (8 years ago)
Author:
tjniskan
Message:
  • Fixed an issue with ROI templates

M aedes.m
M aedes_revision.m

File:
1 edited

Legend:

Unmodified
Added
Removed
  • aedes.m

    r156 r159  
    84128412  filename = [filename,'_template'];
    84138413  DialogTitle = 'Save ROI Template File As';
     8414       
     8415        % Prompt to save either current slice or volume
     8416        if ~Dat.isDataMixed
     8417                resp = questdlg({'ROI templates can be loaded on data whose size differs',...
     8418                        'from than of the ROI. 2D templates (current slice) can be',...
     8419                        'loaded on any data whereas 3D templates (current volume)',...
     8420                        'can be loaded on any 4D data with the same 3D resolution.',...
     8421                        '',...
     8422                        'Do you want to save 2D or 3D template?'},...
     8423                        'Save 2D or 3D template?',...
     8424                        '2D (current slice)','3D (current volume)','Cancel',...
     8425                        '2D (current slice)');
     8426                if isempty(resp) || strcmpi(resp,'Cancel')
     8427                        return
     8428                elseif strcmpi(resp,'2D (current slice)')
     8429                        Save3Dtemplate = false;
     8430                else
     8431                        Save3Dtemplate = true;
     8432                end
     8433        else
     8434                Save3Dtemplate = false;
     8435        end
    84148436else
    84158437  try
     
    84478469        tmp_roi(ii).color = ROI(ii).color;
    84488470      end
    8449     else
    8450       tmp_data.FTDATA = DATA{1}.FTDATA(:,:,Dat.Slices(1),Dat.CurrentVol);
    8451       tmp_data.HDR =  DATA{1}.HDR;
    8452           for ii=1:length(ROI)
    8453         tmp_roi(ii).voxels = {ROI(ii).voxels{Dat.DataInd}(:,:,Dat.Slices(1),Dat.CurrentVol)};
     8471                else
     8472                        if Save3Dtemplate
     8473                                tmp_data.FTDATA = DATA{1}.FTDATA(:,:,:,Dat.CurrentVol);
     8474                                tmp_data.HDR =  DATA{1}.HDR;
     8475                        else
     8476                                tmp_data.FTDATA = DATA{1}.FTDATA(:,:,Dat.Slices(1),Dat.CurrentVol);
     8477                                tmp_data.HDR =  DATA{1}.HDR;
     8478                        end
     8479                        for ii=1:length(ROI)
     8480                                if Save3Dtemplate
     8481                                        tmp_roi(ii).voxels = {ROI(ii).voxels{Dat.DataInd}(:,:,:,Dat.CurrentVol)};
     8482                                else
     8483                                        tmp_roi(ii).voxels = {ROI(ii).voxels{Dat.DataInd}(:,:,Dat.Slices(1),Dat.CurrentVol)};
     8484                                end
    84548485        tmp_roi(ii).fpath = {ROI(ii).fpath{Dat.DataInd}};
    84558486        tmp_roi(ii).fname = {ROI(ii).fname{Dat.DataInd}};
     
    84578488        tmp_roi(ii).color = ROI(ii).color;
    84588489      end
    8459     end
     8490                end
    84608491    [done,msg]=aedes_saveres(tmp_data,tmp_roi,savefilename,'SaveType','roi',...
    84618492                       'waitbar',true,'ConfirmOverwrite',false);
     
    86828713          isRotationNeeded = false;
    86838714          for ii=1:Dat.DataL
    8684             roi_sz=size(tmp.ROI(1).voxels{ii});
    8685             im_sz = size(DATA{ii}.FTDATA);
     8715            roi_sz=[size(tmp.ROI(1).voxels{ii},1),...
     8716                                                        size(tmp.ROI(1).voxels{ii},2),...
     8717                                                        size(tmp.ROI(1).voxels{ii},3),...
     8718                                                        size(tmp.ROI(1).voxels{ii},4)];
     8719            im_sz = [size(DATA{ii}.FTDATA,1),...
     8720                                                        size(DATA{ii}.FTDATA,2),...
     8721                                                        size(DATA{ii}.FTDATA,3),...
     8722                                                        size(DATA{ii}.FTDATA,4)];
    86868723           
    86878724            % Allow loading a 3D ROI over a 4D data if 3D dimensions
     
    86968733                tmp.ROI(kk).voxels{ii}(:,:,:,Dat.CurrentVol)=tmp2(kk).voxels{ii};
    86978734              end
    8698               roi_sz=size(tmp.ROI(1).voxels{ii});
    8699               im_sz = size(DATA{ii}.FTDATA);
     8735              %roi_sz=size(tmp.ROI(1).voxels{ii});
     8736              %im_sz = size(DATA{ii}.FTDATA);
     8737                                                        roi_sz(4) = im_sz(4);
    87008738              clear tmp2
    87018739            end
     
    87038741            %% Abort loading of ROIs if relative dimensions are not the same
    87048742            if length(tmp.ROI(1).voxels)~=length(DATA) || ...
    8705                 ( length(roi_sz)~=length(im_sz) )
    8706               h=errordlg('Cannot continue loading! ROI and DATA sizes do not match!',...
    8707                 'ROI and DATA sizes do not match!','modal');
    8708               clear tmp
    8709               delete(hCalcWait)
    8710               return
    8711             elseif ~all(roi_sz==im_sz)
    8712               %% Warn if resizing of ROIs is needed
    8713               resizeNeeded = true;
     8743                ( length(roi_sz)~=length(im_sz) ) || ...
     8744                                                                ~ismember(roi_sz,im_sz,'rows')
     8745                                                        if all(roi_sz(3:4)==1)
     8746                                                                resizeNeeded = true;
     8747                                                        else
     8748                                                                h=errordlg('Cannot continue loading! ROI and DATA sizes do not match!',...
     8749                                                                        'ROI and DATA sizes do not match!','modal');
     8750                                                                clear tmp
     8751                                                                delete(hCalcWait)
     8752                                                                return
     8753                                                        end
     8754%             elseif ~all(roi_sz==im_sz)
     8755%               %% Warn if resizing of ROIs is needed
     8756%               resizeNeeded = true;
    87148757            end
    87158758
Note: See TracChangeset for help on using the changeset viewer.

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