Changeset 906
- Timestamp:
- May 31, 2015, 7:49:31 PM (9 years ago)
- Location:
- trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/series.m
r905 r906 1719 1719 end 1720 1720 CPUTime=5;% job time estimated at 5 min per iteration (on index i and j) by default 1721 if isfield(Param , 'CPUTime') && ~isempty(Param.CPUTime)1722 CPUTime=Param. CPUTime;%Note: CpUTime for one iteration ref_i has to be multiplied by the number of j indices nbfield_j1721 if isfield(Param.Action, 'CPUTime') && ~isempty(Param.Action.CPUTime) 1722 CPUTime=Param.Action.CPUTime;%Note: CpUTime for one iteration ref_i has to be multiplied by the number of j indices nbfield_j 1723 1723 end 1724 1724 nbfield_j=numel(ref_j); % number of j indices … … 1853 1853 t=set(t,1,'name','Series'); 1854 1854 filexml=fullfile_uvmat(DirXml,'',Param.InputTable{1,3},'.xml',OutputNomType,... 1855 Param.IndexRange.first_i,Param.IndexRange.last_i,first_j,last_j) 1855 Param.IndexRange.first_i,Param.IndexRange.last_i,first_j,last_j); 1856 1856 save(t,filexml);% save the parameter file 1857 1857 … … 1939 1939 % end 1940 1940 filename_joblist=fullfile(DirExe,'0_job_list.txt');%create name of the global executable file 1941 filename_log=fullfile(DirLog,' 0_job_list.stdout');%file for output messages of the master oar process1942 filename_errors=fullfile(DirLog,' 0_job_list.stderr');%file for error messages of the master oar process1941 filename_log=fullfile(DirLog,'job_list.stdout');%file for output messages of the master oar process 1942 filename_errors=fullfile(DirLog,'job_list.stderr');%file for error messages of the master oar process 1943 1943 1944 1944 fid=fopen(filename_joblist,'w'); … … 1966 1966 '-t idempotent --checkpoint ' num2str(WallTimeOneJob*60) ' '... 1967 1967 '-l /core=' num2str(NbCore) ','... 1968 'walltime=' datestr(WallTime OneJob/24,13) ' '...1968 'walltime=' datestr(WallTimeTotal/24,13) ' '... 1969 1969 '-E ' filename_errors ' '... 1970 1970 '-O ' filename_log ' '... -
trunk/src/sub_field.m
r876 r906 98 98 %% field request 99 99 ProjModeRequest=cell(size(Field.ListVarName)); 100 if isfield(Field,'VarAttribute') 100 101 for ilist=1:numel(Field.VarAttribute) 101 102 if isfield(Field.VarAttribute{ilist},'ProjModeRequest') … … 103 104 end 104 105 end 106 end 105 107 ProjModeRequest_1=cell(size(Field_1.ListVarName)); 108 if isfield(Field_1,'VarAttribute') 106 109 for ilist=1:numel(Field_1.VarAttribute) 107 110 if isfield(Field_1.VarAttribute{ilist},'ProjModeRequest') … … 109 112 end 110 113 end 111 114 end 112 115 113 116 %% rename the dimensions of the second field if identical to those of the first … … 162 165 check_rename=zeros(size(ListVarNameSub)); 163 166 check_remove=zeros(size(ListVarNameSub)); 164 for ilist=1:numel(ListVarNameSub) 165 ind_prev=find(strcmp(ListVarNameSub{ilist},Field.ListVarName),1);% look for duplicated variable name 166 if ~isempty(ind_prev)% variable name exists in Field 167 if isfield(Field_1.VarAttribute{ilist},'Role')&&... 168 ismember(Field_1.VarAttribute{ilist}.Role,{'coord_x','coord_y','scalar','vector_x','vector_y','errorflag'}) 169 ListVarNameNew{ilist}=[ListVarNameSub{ilist} '_1'];%modify the name of the second variable 170 check_rename(ilist)=1; 171 else 172 check_remove(ilist)=1;% variable will be removed 173 end 174 end 175 end 176 ListVarNameSub=ListVarNameSub(~check_remove); %eliminate removed variables from the list of the second field 177 ListVarNameNew=ListVarNameNew(~check_remove); % %list of renaimed varaibles corresponding to ListVarNameSub 178 VarDimNameSub=Field_1.VarDimName(~check_remove); 179 if numel(Field_1.VarAttribute)<max(find(~check_remove)) 180 for ilist=numel(Field_1.VarAttribute)+1:max(find(~check_remove)) 181 Field_1.VarAttribute{ilist}={}; 182 end 183 end 184 VarAttributeSub=Field_1.VarAttribute(~check_remove); 185 check_rename=check_rename(~check_remove); 186 167 VarDimNameSub={}; 168 VarAttributeSub={}; 169 if isfield(Field_1,'VarAttribute')&&~isempty(Field_1.VarAttribute) 170 for ilist=1:numel(ListVarNameSub) 171 ind_prev=find(strcmp(ListVarNameSub{ilist},Field.ListVarName),1);% look for duplicated variable name 172 if ~isempty(ind_prev)% variable name exists in Field 173 if isfield(Field_1.VarAttribute{ilist},'Role')&&... 174 ismember(Field_1.VarAttribute{ilist}.Role,{'coord_x','coord_y','scalar','vector_x','vector_y','errorflag'}) 175 ListVarNameNew{ilist}=[ListVarNameSub{ilist} '_1'];%modify the name of the second variable 176 check_rename(ilist)=1; 177 else 178 check_remove(ilist)=1;% variable will be removed 179 end 180 end 181 end 182 ListVarNameSub=ListVarNameSub(~check_remove); %eliminate removed variables from the list of the second field 183 ListVarNameNew=ListVarNameNew(~check_remove); % %list of renaimed varaibles corresponding to ListVarNameSub 184 VarDimNameSub=Field_1.VarDimName(~check_remove); 185 if numel(Field_1.VarAttribute)<max(find(~check_remove)) 186 for ilist=numel(Field_1.VarAttribute)+1:max(find(~check_remove)) 187 Field_1.VarAttribute{ilist}={}; 188 end 189 end 190 VarAttributeSub=Field_1.VarAttribute(~check_remove); 191 check_rename=check_rename(~check_remove); 192 end 187 193 % apply the variable renaming and mark the second field variables with the attribute .CheckSub 188 194 for ilist=1:numel(ListVarNameSub) -
trunk/src/transform_field/ima_erode_particles.m
r899 r906 35 35 36 36 %parameters 37 radius= 2;38 SE=strel('disk', 2);37 radius=4; 38 SE=strel('disk',radius); 39 39 %--------------------------------------------------------- 40 40 DataOut=DataIn;%default … … 44 44 return 45 45 end 46 46 [npy,npx]=size(DataIn.A); 47 [X,Y]=meshgrid(1:npx,1:npy); 47 48 %BACKGROUND LEVEL 48 49 Atype=class(DataIn.A); 49 DataOut.A=imerode(DataIn.A,SE); 50 %SE=ones(4); 51 Aerode=imerode(DataIn.A,SE); 52 Aflagmin=find(DataIn.A==Aerode); 53 % Backg=zeros(size(A)); 54 %Aflagmin=imregionalmin(DataIn.A);%Amin=1 for local image minima 55 Xmin=X(Aflagmin); 56 Ymin=Y(Aflagmin); 57 Amin=double(DataIn.A(Aflagmin)); 58 F = TriScatteredInterp([Xmin Ymin], Amin); 59 DataOut.A=F(X,Y); 60 50 61 % DataOut.A=feval(Atype,DataOut.A); 51 62 -
trunk/src/transform_field/ima_remove_background.m
r897 r906 27 27 %======================================================================= 28 28 29 function DataOut=remove_background(DataIn )29 function DataOut=remove_background(DataIn,Param) 30 30 %------------------------------------------------------------------------ 31 DataOut=[]; %default output field 32 if strcmp(DataIn,'*') 31 %% request input parameters 32 if isfield(DataIn,'Action') && isfield(DataIn.Action,'RUN') && isequal(DataIn.Action.RUN,0) 33 prompt = {'radius'}; 34 dlg_title = 'get the disk radius (pixels) used to calculate the regional minimum'; 35 num_lines= 1; 36 def = { '4'}; 37 if isfield(Param,'TransformInput')&&isfield(Param.TransformInput,'DiskRadius') 38 def={num2str(Param.TransformInput.DiskRadius)}; 39 end 40 answer = inputdlg(prompt,dlg_title,num_lines,def); 41 DataOut.TransformInput.DiskRadius=str2num(answer{1}); 42 return 43 end 44 if ~isfield(DataIn,'A') 45 DataOut.Txt='remove_particles only valid for input images'; 46 return 47 end 48 if ~exist('imerode','file'); 49 DataOut.Txt='the function imerode from the image processing toolbox is needed'; 33 50 return 34 51 end 35 52 36 %parameters 37 threshold=200 38 nblock_x=30;%size of image subblocks for analysis 39 nblock_y=30; 40 %--------------------------------------------------------- 53 SE=strel('disk',Param.TransformInput.DiskRadius); 54 %--------------------------------------------------------- 41 55 DataOut=DataIn;%default 56 57 [npy,npx]=size(DataIn.A); 58 [X,Y]=meshgrid(1:npx,1:npy); 42 59 43 60 %BACKGROUND LEVEL 44 61 Atype=class(DataIn.A); 45 A=double(DataIn.A); 46 Backg=zeros(size(A)); 47 Aflagmin=sparse(imregionalmin(A));%Amin=1 for local image minima 48 Amin=A.*Aflagmin;%values of A at local minima 49 % local background: find all the local minima in image subblocks 50 sumblock= inline('sum(sum(x(:)))'); 51 Backg=blkproc(Amin,[nblock_y nblock_x],sumblock);% take the sum in blocks 52 Bmin=blkproc(Aflagmin,[nblock_y nblock_x],sumblock);% find the number of minima in blocks 53 Backg=Backg./Bmin; % find the average of minima in blocks 54 B=imresize(Backg,size(A),'bilinear');% interpolate to the initial size image 55 ImPart=(A-B); 56 DataOut.A=ImPart; 57 %DataOut.A=ImPart.*(ImPart>threshold); 62 Aerode=imerode(DataIn.A,SE); 63 Aflagmin=find(DataIn.A==Aerode); 64 Xmin=X(Aflagmin); 65 Ymin=Y(Aflagmin); 66 Amin=double(DataIn.A(Aflagmin)); 67 F = TriScatteredInterp([Xmin Ymin], Amin); 68 DataOut.A=double(DataOut.A)-F(X,Y); 58 69 DataOut.A=feval(Atype,DataOut.A); 70 71 %BACKGROUND LEVEL 72 % Atype=class(DataIn.A); 73 % A=double(DataIn.A); 74 % Backg=zeros(size(A)); 75 % Aflagmin=sparse(imregionalmin(A));%Amin=1 for local image minima 76 % Amin=A.*Aflagmin;%values of A at local minima 77 % % local background: find all the local minima in image subblocks 78 % sumblock= inline('sum(sum(x(:)))'); 79 % Backg=blkproc(Amin,[nblock_y nblock_x],sumblock);% take the sum in blocks 80 % Bmin=blkproc(Aflagmin,[nblock_y nblock_x],sumblock);% find the number of minima in blocks 81 % Backg=Backg./Bmin; % find the average of minima in blocks 82 % B=imresize(Backg,size(A),'bilinear');% interpolate to the initial size image 83 % ImPart=(A-B); 84 % DataOut.A=ImPart; 85 % %DataOut.A=ImPart.*(ImPart>threshold); 86 % DataOut.A=feval(Atype,DataOut.A); -
trunk/src/transform_field/ima_remove_particles.m
r897 r906 27 27 %======================================================================= 28 28 29 function DataOut=ima_remove_particles(DataIn )29 function DataOut=ima_remove_particles(DataIn,Param) 30 30 %------------------------------------------------------------------------ 31 DataOut=[]; %default output field 32 if strcmp(DataIn,'*') 31 %% request input parameters 32 if isfield(DataIn,'Action') && isfield(DataIn.Action,'RUN') && isequal(DataIn.Action.RUN,0) 33 prompt = {'radius'}; 34 dlg_title = 'get the disk radius (pixels) used to calculate the regional minimum'; 35 num_lines= 1; 36 def = { '4'}; 37 if isfield(Param,'TransformInput')&&isfield(Param.TransformInput,'DiskRadius') 38 def={num2str(Param.TransformInput.DiskRadius)}; 39 end 40 answer = inputdlg(prompt,dlg_title,num_lines,def); 41 DataOut.TransformInput.DiskRadius=str2num(answer{1}); 33 42 return 34 35 43 end 36 37 %parameters38 threshold=200;39 nblock_x=10;%size of image subblocks for analysis40 nblock_y=10;41 %---------------------------------------------------------42 DataOut=DataIn;%default43 44 44 if ~isfield(DataIn,'A') 45 45 DataOut.Txt='remove_particles only valid for input images'; 46 46 return 47 47 end 48 if ~exist('imerode','file'); 49 DataOut.Txt='the function imerode from the image processing toolbox is needed'; 50 return 51 end 48 52 53 SE=strel('disk',Param.TransformInput.DiskRadius); 54 %--------------------------------------------------------- 55 DataOut=DataIn;%default 56 57 [npy,npx]=size(DataIn.A); 58 [X,Y]=meshgrid(1:npx,1:npy); 49 59 %BACKGROUND LEVEL 50 60 Atype=class(DataIn.A); 51 A=double(DataIn.A); 61 %SE=ones(4); 62 Aerode=imerode(DataIn.A,SE); 63 Aflagmin=find(DataIn.A==Aerode); 52 64 % Backg=zeros(size(A)); 53 Aflagmin=sparse(imregionalmin(A));%Amin=1 for local image minima 54 Amin=A.*Aflagmin;%values of A at local minima 55 % local background: find all the local minima in image subblocks 56 sumblock= inline('sum(sum(x(:)))'); 57 Backg=blkproc(Amin,[nblock_y nblock_x],sumblock);% take the sum in blocks 58 Bmin=blkproc(Aflagmin,[nblock_y nblock_x],sumblock);% find the number of minima in blocks 59 Backg=Backg./Bmin; % find the average of minima in blocks 60 B=imresize(Backg,size(A),'bilinear');% interpolate to the initial size image 61 DataOut.A=B; 62 % ImPart=(A-B); 63 % ImPart=ImPart.*(ImPart>threshold); 64 % DataOut.A=A-ImPart;% 65 %Aflagmin=imregionalmin(DataIn.A);%Amin=1 for local image minima 66 Xmin=X(Aflagmin); 67 Ymin=Y(Aflagmin); 68 Amin=double(DataIn.A(Aflagmin)); 69 F = TriScatteredInterp([Xmin Ymin], Amin); 70 DataOut.A=F(X,Y); 65 71 DataOut.A=feval(Atype,DataOut.A); 66 72
Note: See TracChangeset
for help on using the changeset viewer.