Changeset 1187 for trunk/src/uvmat.m
- Timestamp:
- Dec 3, 2025, 6:18:13 PM (4 days ago)
- File:
-
- 1 edited
-
trunk/src/uvmat.m (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/uvmat.m
r1184 r1187 1217 1217 shift_x=diff(Slice.SliceAngle(:,1)); 1218 1218 shift_y=diff(Slice.SliceAngle(:,2)); 1219 if min(shift_x)<max(shift_x)||min(shift_y)<max(shift_y)1219 if size(Slice.SliceAngle,1)>1 &&( min(shift_x)<max(shift_x)||min(shift_y)<max(shift_y)) 1220 1220 app.unequalintervalsCheckBox.Value=1; 1221 1221 end … … 3000 3000 end 3001 3001 FileInfo=get_file_info(fileinput); 3002 if isfield(FileInfo,'MaskFile')&& exist(FileInfo.MaskFile,'file') 3003 filemask=FileInfo.MaskFile; 3002 if isfield(FileInfo,'MaskFile')%&& exist(FileInfo.MaskFile,'file') 3003 Mask.MaskFile=FileInfo.MaskFile; 3004 if isfield(FileInfo,'MaskNbSlice') 3005 Mask.MaskNbSlice=FileInfo.MaskNbSlice; 3006 end 3004 3007 else 3005 % MaskSubDir=regexprep(SubDir,'\..*','');%take the root part of SubDir, before the first dot '.' 3006 % MaskPath=fullfile(RootPath,[MaskSubDir '.mask']); 3007 % mdetect=0; 3008 % if exist(MaskPath,'dir') 3009 % ListStruct=dir(MaskPath);%look for a mask file 3010 % ListCells=struct2cell(ListStruct);% transform dir struct to a cell arrray 3011 % check_dir=cell2mat(ListCells(4,:));% =1 for directories, =0 for files 3012 % ListFiles=ListCells(1,:);%list of file and dri names 3013 % ListFiles=ListFiles(~check_dir);%list of file names (excluding dir) 3014 % if ~isempty(ListFiles) 3015 % for ifile=1:numel(ListFiles) 3016 % [tild,tild,MaskExt]=fileparts(ListFiles{1}); 3017 % [tild,tild,MaskFile{ifile},i1_series,i2_series,j1_series,j2_series,MaskNomType,MaskFileInfo]=find_file_series(MaskPath,ListFiles{ifile},0); 3018 % MaskFileType=MaskFileInfo.FileType; 3019 % if strcmp(MaskFileType,'image') && isempty(i2_series) && isempty(j2_series) 3020 % mdetect=1; 3021 % end 3022 % if ~strcmp(MaskFile{ifile},MaskFile{1}) 3023 % mdetect=0;% cancel detection test in case of multiple masks, use the brower for selection 3024 % break 3025 % end 3026 % end 3027 % end 3028 % RootPath=MaskPath; 3029 % end 3030 filemask= uigetfile_uvmat('pick a mask image file:',RootPath,'image'); 3031 end 3032 if ~isempty(filemask) 3033 [MaskPath,FileName,FileExt]=fileparts(filemask); 3034 Mask.File=filemask; 3035 [~,~,~,i1_series,~,~,~,NomType]=find_file_series(MaskPath,[FileName FileExt]); 3036 Mask.NbSlice=[];%default 3037 Mask.VolumeScan=0;% TO UPDATE *** 3038 if strcmp(NomType,'_1') 3039 Mask.NbSlice=i1_series(1,2,end); 3040 set(handles.num_NbSlice,'String',num2str(Mask.NbSlice)) 3041 elseif ~strcmp(NomType,'*') 3042 msgbox_uvmat('ERROR','multilevel masks must be labeled with a single index as _1,_2,...'); 3043 return 3044 end 3045 %set(hObject,'UserData',filemask);%store for future use 3046 set(handles.CheckMask,'UserData',Mask); 3047 errormsg=update_mask(handles); 3048 if ~isempty(errormsg) 3049 msgbox_uvmat(['ERROR','error in displaying mask, ' errormsg]); 3050 end 3008 filemask= uigetfile_uvmat('pick a mask image file:',fileinput,'image'); 3009 if ~isempty(filemask) 3010 [FilePath,FileName,FileExt]=fileparts(filemask); 3011 [RootPath,SubDir,RootFile,i1_series,i2,j1,j2,NomType]=find_file_series(FilePath,[FileName FileExt]); 3012 if strcmp(NomType,'_1') 3013 Mask.MaskFile=fullfile(RootPath,SubDir,RootFile); 3014 Mask.MaskExt=FileExt; 3015 Mask.MaskNbSlice=i1_series(1,2,end); 3016 elseif ~strcmp(NomType,'*') 3017 msgbox_uvmat('ERROR','multilevel masks must be labeled with a single index as _1,_2,...'); 3018 set(handles.CheckMask,'Value',0) 3019 return 3020 end 3021 end 3022 end 3023 % i1=str2double(get(handles.num_i1,'String')); 3024 % filemask=FileInfo.MaskFile; 3025 % if isfield(FileInfo,'MaskNbSlice') 3026 % i1=str2double(get(handles.num_i1,'String')); 3027 % MaskIndex=mod(i1,FileInfo.MaskNbSlice) 3028 % filemask=[filemask '_' num2str(MaskIndex) FileInfo.MaskExt] 3029 % % else 3030 % % filemask= uigetfile_uvmat('pick a mask image file:',RootPath,'image'); 3031 % end 3032 % if ~isempty(filemask) 3033 % [MaskPath,FileName,FileExt]=fileparts(filemask); 3034 % Mask.File=filemask; 3035 % [~,~,~,i1_series,~,~,~,NomType]=find_file_series(MaskPath,[FileName FileExt]); 3036 % Mask.NbSlice=[];%default 3037 % Mask.VolumeScan=0;% TO UPDATE *** 3038 % if strcmp(NomType,'_1') 3039 % Mask.NbSlice=i1_series(1,2,end); 3040 % set(handles.num_NbSlice,'String',num2str(Mask.NbSlice)) 3041 % elseif ~strcmp(NomType,'*') 3042 % msgbox_uvmat('ERROR','multilevel masks must be labeled with a single index as _1,_2,...'); 3043 % return 3044 % end 3045 %set(hObject,'UserData',filemask);%store for future use 3046 set(handles.CheckMask,'UserData',Mask); 3047 errormsg=update_mask(handles); 3048 if ~isempty(errormsg) 3049 msgbox_uvmat(['ERROR','error in displaying mask, ' errormsg]); 3051 3050 end 3052 3051 else % desactivate mask display 3053 3052 MaskData=get(handles.CheckMask,'UserData'); 3054 3053 if isfield(MaskData,'maskhandle') && ishandle(MaskData.maskhandle) 3055 % delete(MaskData.maskhandle)3056 set(MaskData.maskhandle,'Visible','off')3054 % delete(MaskData.maskhandle) 3055 set(MaskData.maskhandle,'Visible','off') 3057 3056 end 3058 3057 set(handles.CheckMask,'UserData',[]) … … 3073 3072 %% get the current mask name recorded in CheckMask/UserData, possibly indexed with file index 3074 3073 MaskInfo=get(handles.CheckMask,'UserData'); 3075 if isfield(MaskInfo,' File')3076 if isfield(MaskInfo,' NbSlice')&& ~isempty(MaskInfo.NbSlice)3074 if isfield(MaskInfo,'MaskFile') 3075 if isfield(MaskInfo,'MaskNbSlice')&& ~isempty(MaskInfo.MaskNbSlice) 3077 3076 if isfield(MaskInfo,'VolumeScan') && MaskInfo.VolumeScan 3078 3077 MaskIndex_i=str2double(get(handles.num_j1,'String')); 3079 3078 else 3080 MaskIndex_i=mod(str2double(get(handles.num_i1,'String'))-1,MaskInfo. NbSlice)+1;3081 end 3082 MaskName=[MaskInfo. File '_' num2str(MaskIndex_i) '.png'];3079 MaskIndex_i=mod(str2double(get(handles.num_i1,'String'))-1,MaskInfo.MaskNbSlice)+1; 3080 end 3081 MaskName=[MaskInfo.MaskFile '_' num2str(MaskIndex_i) '.png']; 3083 3082 else 3084 3083 MaskIndex_i=1; 3085 MaskName=MaskInfo. File;3084 MaskName=MaskInfo.MaskFile; 3086 3085 end 3087 3086 3088 3087 %% update mask image if the mask is new 3089 3088 UvData=get(handles.uvmat,'UserData'); 3090 if ~ (isfield(UvData,'MaskName') && isequal(UvData.MaskName,MaskName)) 3089 TransformMenu=get(handles.TransformName,'String') 3090 TransformName= TransformMenu{get(handles.TransformName,'Value')}; 3091 if ~ (isfield(UvData,'MaskName') && strcmp(UvData.MaskName,MaskName)&& isfield(UvData,'TransformName')&& strcmp(UvData.TransformName,TransformName))%check if the mask is new 3091 3092 UvData.MaskName=MaskName; %update the recorded name on UvData 3093 UvData.TransformName=TransformName; %update the recorded name on UvData 3092 3094 set(handles.uvmat,'UserData',UvData); 3093 3095 if ~exist(MaskName,'file') … … 4251 4253 break 4252 4254 end 4253 [ObjectData, errormsg]=proj_field(UvData.Field,UvData.ProjObject{iobj});% project field on the object4254 if ~isempty( errormsg)4255 errormsg=['projection on ' UvData.ProjObject{iobj}.Type ': ' errormsg ];4256 return4255 [ObjectData,warnmsg]=proj_field(UvData.Field,UvData.ProjObject{iobj});% project field on the object 4256 if ~isempty(warnmsg) 4257 msgbox_uvmat('WARNING',['projection on ' UvData.ProjObject{iobj}.Type ': ' warnmsg ]); 4258 continue 4257 4259 end 4258 4260 if testnewseries
Note: See TracChangeset
for help on using the changeset viewer.
