Changeset 854
- Timestamp:
- Jan 21, 2015, 7:02:04 PM (10 years ago)
- Location:
- trunk/src/series
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/series/civ_input.m
r853 r854 257 257 set(handles.dt_unit,'String',['dt in m' TimeUnit]);%display dt in unit 10-3 of the time (e.g ms) 258 258 set(handles.TimeUnit,'String',TimeUnit); 259 set(handles.CoordUnit,'String',CoordUnit)259 %set(handles.CoordUnit,'String',CoordUnit) 260 260 set(handles.SearchRange,'UserData', pxcm_search); 261 261 … … 988 988 set(handles.num_VMin,'Visible','on') 989 989 set(handles.num_VMax,'Visible','on') 990 set(handles.CoordUnit,'Visible','on')991 set(handles.TimeUnit,'Visible','on')992 set(handles.slash_title,'Visible','on')990 %set(handles.CoordUnit,'Visible','on') 991 %set(handles.TimeUnit,'Visible','on') 992 %set(handles.slash_title,'Visible','on') 993 993 set(handles.min_title,'Visible','on') 994 994 set(handles.max_title,'Visible','on') … … 1023 1023 end 1024 1024 if ~(isempty(umin)||isempty(umax)||isempty(vmin)||isempty(vmax)) 1025 list_pair=get(handles.ListPairCiv1,'String');%get the menu of image pairs1026 index=get(handles.ListPairCiv1,'Value');1027 pair_string=list_pair{index};1028 time=get(handles.TimeSource,'UserData'); %get the set of times1029 pxcm=get(handles.SearchRange,'UserData');1030 mode_list=get(handles.ListPairMode,'String');1031 mode_value=get(handles.ListPairMode,'Value');1032 mode=mode_list{mode_value};1033 if isequal (mode, 'series(Di)' )1034 ref_i=str2double(get(handles.ref_i,'String'));1035 num1=ref_i-floor(index/2);% first image numbers1036 num2=ref_i+ceil(index/2);1037 num_a=1;1038 num_b=1;1039 elseif isequal (mode, 'series(Dj)')1040 num1=1;1041 num2=1;1042 ref_j=str2double(get(handles.ref_j,'String'));1043 num_a=ref_j-floor(index/2);% first image numbers1044 num_b=ref_j+ceil(index/2);1045 elseif isequal(mode,'pair j1-j2') %case of bursts (png_old or png_2D)1046 ref_i=str2double(get(handles.ref_i,'String'));1047 num1=ref_i;1048 num2=ref_i;1049 r=regexp(pair_string,'(?<mode>(Di=)|(Dj=)) -*(?<num1>\d+)\|(?<num2>\d+)','names');1050 if isempty(r)1051 r=regexp(pair_string,'(?<num1>\d+)(?<mode>-)(?<num2>\d+)','names');1052 end1053 num_a=str2num(r.num1);1054 num_b=str2num(r.num2);1055 end1056 dt=time(num2+1,num_b+1)-time(num1+1,num_a+1);1057 ibx=str2double(get(handles.num_CorrBoxSize_1,'String'));1058 iby=str2double(get(handles.num_CorrBoxSize_2,'String'));1059 umin=dt*pxcm*umin;1060 umax=dt*pxcm*umax;1061 vmin=dt*pxcm*vmin;1062 vmax=dt*pxcm*vmax;1025 % list_pair=get(handles.ListPairCiv1,'String');%get the menu of image pairs 1026 % index=get(handles.ListPairCiv1,'Value'); 1027 % pair_string=list_pair{index}; 1028 % time=get(handles.TimeSource,'UserData'); %get the set of times 1029 % pxcm=get(handles.SearchRange,'UserData'); 1030 % mode_list=get(handles.ListPairMode,'String'); 1031 % mode_value=get(handles.ListPairMode,'Value'); 1032 % mode=mode_list{mode_value}; 1033 % if isequal (mode, 'series(Di)' ) 1034 % ref_i=str2double(get(handles.ref_i,'String')); 1035 % num1=ref_i-floor(index/2);% first image numbers 1036 % num2=ref_i+ceil(index/2); 1037 % num_a=1; 1038 % num_b=1; 1039 % elseif isequal (mode, 'series(Dj)') 1040 % num1=1; 1041 % num2=1; 1042 % ref_j=str2double(get(handles.ref_j,'String')); 1043 % num_a=ref_j-floor(index/2);% first image numbers 1044 % num_b=ref_j+ceil(index/2); 1045 % elseif isequal(mode,'pair j1-j2') %case of bursts (png_old or png_2D) 1046 % ref_i=str2double(get(handles.ref_i,'String')); 1047 % num1=ref_i; 1048 % num2=ref_i; 1049 % r=regexp(pair_string,'(?<mode>(Di=)|(Dj=)) -*(?<num1>\d+)\|(?<num2>\d+)','names'); 1050 % if isempty(r) 1051 % r=regexp(pair_string,'(?<num1>\d+)(?<mode>-)(?<num2>\d+)','names'); 1052 % end 1053 % num_a=str2num(r.num1); 1054 % num_b=str2num(r.num2); 1055 % end 1056 % dt=time(num2+1,num_b+1)-time(num1+1,num_a+1); 1057 % ibx=str2double(get(handles.num_CorrBoxSize_1,'String')); 1058 % iby=str2double(get(handles.num_CorrBoxSize_2,'String')); 1059 % umin=dt*pxcm*umin; 1060 % umax=dt*pxcm*umax; 1061 % vmin=dt*pxcm*vmin; 1062 % vmax=dt*pxcm*vmax; 1063 1063 shiftx=round((umin+umax)/2); 1064 1064 shifty=round((vmin+vmax)/2); 1065 isx=(umax+2-shiftx)*2+param_civ1. Bx;1065 isx=(umax+2-shiftx)*2+param_civ1.CorrBoxSize(1); 1066 1066 isx=2*ceil(isx/2)+1; 1067 isy=(vmax+2-shifty)*2+param_civ1. Bx;1067 isy=(vmax+2-shifty)*2+param_civ1.CorrBoxSize(2); 1068 1068 isy=2*ceil(isy/2)+1; 1069 1069 set(handles.num_SearchBoxShift_1,'String',num2str(shiftx)); … … 1076 1076 % --- Executes on button press in CheckMask. 1077 1077 function num_CorrSmooth_Callback(hObject, eventdata, handles) 1078 set(hObject,'BackgroundColor',[1 0 1])1079 1078 set(handles.configSource,'String','NEW') 1080 1079 set(handles.configSource,'BackgroundColor',[1 0 1]) 1081 1080 %------------------------------------------------------------------------ 1082 1081 … … 1417 1416 set(hObject,'BackgroundColor',[1 0 1]) 1418 1417 set(handles.configSource,'String','NEW') 1419 1418 set(handles.configSource,'BackgroundColor',[1 0 1]) 1420 1419 %------------------------------------------------------------------------ 1421 1420 % --- Executes on button press in CheckMask: common to all panels (civ1, Civ2..) … … 1461 1460 set(handle_txtbox,'Visible','off') 1462 1461 end 1463 set(hObject,'BackgroundColor',[1 0 1])1464 1462 set(handles.configSource,'String','NEW') 1463 set(handles.configSource,'BackgroundColor',[1 0 1]) 1465 1464 1466 1465 % %------------------------------------------------------------------------ … … 1678 1677 set(obj,'Visible','off') 1679 1678 end 1680 set(hObject,'BackgroundColor',[1 0 1])1681 1679 set(handles.configSource,'String','NEW') 1680 set(handles.configSource,'BackgroundColor',[1 0 1]) 1682 1681 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1683 1682 %%%%%%%%%%%%%% TEST functions … … 2133 2132 ListExclude={'CheckCiv1','CheckFix1','CheckPatch1','CheckCiv2','CheckFix2','CheckPatch2','ref_i'}; 2134 2133 if isempty(find(strcmp(get(gco,'Tag'),ListExclude),1))% if the selected uicontrol is not in the Exclude list 2135 set(gco,'BackgroundColor',[1 0 1])2136 drawnow2137 2134 set(handles.ConfigSource,'String','NEW')% indicate that the configuration is new 2138 end 2135 set(handles.ConfigSource,'BackgroundColor',[1 0 1])% 2136 end -
trunk/src/series/civ_series.m
r852 r854 611 611 612 612 % get the guess from patch1 or patch2 (case 'iterate') 613 if isfield (par_civ2,'iterate') && strcmp(par_civ2.iterate,' iterate')613 if isfield (par_civ2,'iterate') && strcmp(par_civ2.iterate,'civ3') 614 614 SubRange= Data.Civ2_SubRange; 615 615 NbCentres=Data.Civ2_NbCentres; … … 1002 1002 [vector,F(ivec)] = SUBPIX2DGAUSS (result_conv,x,y); 1003 1003 end 1004 utable(ivec)=vector(1)*mesh+shiftx(ivec); 1004 % if ~isfield(par_civ,'CheckDeformation') 1005 utable(ivec)=vector(1)*mesh+shiftx(ivec); 1005 1006 vtable(ivec)=vector(2)*mesh+shifty(ivec); 1007 % else 1008 % utable(ivec)=shiftx(ivec);% TEST TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1009 % vtable(ivec)=shifty(ivec); 1010 % end 1006 1011 xtable(ivec)=iref+utable(ivec)/2-0.5;% convec flow (velocity taken at the point middle from imgae 1 and 2) 1007 1012 ytable(ivec)=jref+vtable(ivec)/2-0.5;% and position of pixel 1=0.5 (convention for image coordinates=0 at the edge) -
trunk/src/series/stereo_civ.m
r851 r854 327 327 328 328 % set the list of variables 329 Data.ListVarName={'Civ1_X','Civ1_Y','Civ1_U','Civ1_V','Civ1_F','Civ1_C' ,'Xphys','Yphys','Zphys','Civ1_E'};% cell array containing the names of the fields to record330 Data.VarDimName={'nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1' ,'nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1'};329 Data.ListVarName={'Civ1_X','Civ1_Y','Civ1_U','Civ1_V','Civ1_F','Civ1_C'};% cell array containing the names of the fields to record 330 Data.VarDimName={'nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1','nb_vec_1'}; 331 331 Data.VarAttribute{1}.Role='coord_x'; 332 332 Data.VarAttribute{2}.Role='coord_y'; … … 345 345 Data.Civ1_C=reshape(ctable,[],1); 346 346 Data.Civ1_F=reshape(F,[],1); 347 Data.Xphys=Rangx(1)+(Rangx(2)-Rangx(1))*(Data.Civ1_X-0.5)/(Npx-1); 348 Data.Yphys=Rangy(1)+(Rangy(2)-Rangy(1))*(Data.Civ1_Y-0.5)/(Npy-1); 349 U=Data.Civ1_U*(Rangx(2)-Rangx(1))/(Npx-1); 350 V=Data.Civ1_V*(Rangy(2)-Rangy(1))/(Npy-1); 351 [Data.Zphys,Data.Civ1_E]=shift2z(Data.Xphys,Data.Yphys,U,V,XmlData); 352 if ~isempty(errormsg) 353 disp_uvmat('ERROR',errormsg,checkrun) 354 return 355 end 347 % Data.Xphys=Rangx(1)+(Rangx(2)-Rangx(1))*(Data.Civ1_X-0.5)/(Npx-1); 348 % Data.Yphys=Rangy(1)+(Rangy(2)-Rangy(1))*(Data.Civ1_Y-0.5)/(Npy-1); 349 % 350 % U=Data.Civ1_U*(Rangx(2)-Rangx(1))/(Npx-1); 351 % V=Data.Civ1_V*(Rangy(2)-Rangy(1))/(Npy-1); 352 % [Data.Zphys,Data.Civ1_E]=shift2z(Data.Xphys,Data.Yphys,U,V,XmlData); 353 % if ~isempty(errormsg) 354 % disp_uvmat('ERROR',errormsg,checkrun) 355 % return 356 % end 356 357 end 357 358 … … 444 445 j2=j2_series_Civ2(ifield); 445 446 end 446 par_civ2.ImageWidth=FileInfo_A.Width; 447 par_civ2.ImageHeight=FileInfo_A.Height; 448 447 par_civ2.ImageWidth=size(par_civ2.ImageA,2);%FileInfo_A.Width; 448 par_civ2.ImageHeight=size(par_civ2.ImageA,1);%FileInfo_A.Height; 449 449 if isfield(par_civ2,'Grid')% grid points set as input file 450 450 if ischar(par_civ2.Grid)%read the grid file if the input is a file name … … 522 522 523 523 nbvar=numel(Data.ListVarName); 524 Data.ListVarName=[Data.ListVarName {'Civ2_X','Civ2_Y','Civ2_U','Civ2_V','Civ2_F','Civ2_C' }];% cell array containing the names of the fields to record525 Data.VarDimName=[Data.VarDimName {'nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2' }];524 Data.ListVarName=[Data.ListVarName {'Civ2_X','Civ2_Y','Civ2_U','Civ2_V','Civ2_F','Civ2_C','Xphys','Yphys','Zphys','Civ2_E'}];% cell array containing the names of the fields to record 525 Data.VarDimName=[Data.VarDimName {'nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2','nb_vec_2'}]; 526 526 Data.VarAttribute{nbvar+1}.Role='coord_x'; 527 527 Data.VarAttribute{nbvar+2}.Role='coord_y'; … … 596 596 Data.CivStage=Data.CivStage+1; 597 597 598 599 % % 600 % % % get z from u and v (displacements) 601 % % 602 % Data.Xphys=Rangx(1)+(Rangx(2)-Rangx(1))*(Data.Civ2_X-0.5)/(Npx-1); 603 % Data.Yphys=Rangy(1)+(Rangy(2)-Rangy(1))*(Data.Civ2_Y-0.5)/(Npy-1); 604 % U=Data.Civ2_U_smooth*(Rangx(2)-Rangx(1))/(Npx-1); 605 % V=Data.Civ2_V_smooth*(Rangy(2)-Rangy(1))/(Npy-1); 606 % [Data.Zphys,Data.Civ1_E]=shift2z(Data.Xphys,Data.Yphys,U,V,XmlData); 607 % % if ~isempty(errormsg) 608 % % disp_uvmat('ERROR',errormsg,checkrun) 609 % % return 610 % % end 598 599 % get z from u and v (displacements) 600 601 Data.Xphys=Rangx(1)+(Rangx(2)-Rangx(1))*(Data.Civ2_X-0.5)/(Npx-1); 602 Data.Yphys=Rangy(1)+(Rangy(2)-Rangy(1))*(Data.Civ2_Y-0.5)/(Npy-1); 603 U=Data.Civ2_U_smooth*(Rangx(2)-Rangx(1))/(Npx-1); 604 V=Data.Civ2_V_smooth*(Rangy(2)-Rangy(1))/(Npy-1); 605 [Data.Zphys,Data.Civ2_E]=shift2z(Data.Xphys,Data.Yphys,U,V,XmlData); 606 if ~isempty(errormsg) 607 disp_uvmat('ERROR',errormsg,checkrun) 608 return 609 end 611 610 612 611 end … … 820 819 image2_crop=interp2(image2_crop,xi,yi); 821 820 end 822 sum_square= sum(sum(image1_crop.*image1_crop));821 sum_square=(sum(sum(image1_crop.*image1_crop))+sum(sum(image2_crop.*image2_crop)))/2; 823 822 %reference: Oliver Pust, PIV: Direct Cross-Correlation 824 823 result_conv= conv2(image2_crop,flipdim(flipdim(image1_crop,2),1),'valid'); … … 834 833 [vector,F(ivec)] = SUBPIX2DGAUSS (result_conv,x,y); 835 834 end 836 utable(ivec)=vector(1)*mesh+shiftx(ivec); 835 836 % if isfield(par_civ,'CheckDeformation') 837 % utable(ivec)=shiftx(ivec); 838 % vtable(ivec)=shifty(ivec); 839 % else 840 utable(ivec)=vector(1)*mesh+shiftx(ivec); 837 841 vtable(ivec)=vector(2)*mesh+shifty(ivec); 842 % end 838 843 % xtable(ivec)=iref+utable(ivec)/2-0.5;% convec flow (velocity taken at the point middle from imgae 1 and 2) 839 844 % ytable(ivec)=jref+vtable(ivec)/2-0.5;% and position of pixel 1=0.5 (convention for image coordinates=0 at the edge) … … 1053 1058 Calib_A=XmlData{1}.GeometryCalib; 1054 1059 R=(Calib_A.R)'; 1055 x_a=xmid -u/2;1056 y_a=ymid -v/2;1060 x_a=xmid; 1061 y_a=ymid; 1057 1062 z_a=R(7)*x_a+R(8)*y_a+Calib_A.Tx_Ty_Tz(1,3); 1058 1063 Xa=(R(1)*x_a+R(2)*y_a+Calib_A.Tx_Ty_Tz(1,1))./z_a; … … 1072 1077 Calib_B=XmlData{2}.GeometryCalib; 1073 1078 R=(Calib_B.R)'; 1074 x_b=xmid+ u /2;1075 y_b=ymid+ v /2;1079 x_b=xmid+ u; 1080 y_b=ymid+ v; 1076 1081 z_b=R(7)*x_b+R(8)*y_b+Calib_B.Tx_Ty_Tz(1,3); 1077 1082 Xb=(R(1)*x_b+R(2)*y_b+Calib_B.Tx_Ty_Tz(1,1))./z_b; -
trunk/src/series/sub_background.m
r810 r854 145 145 if nbfield_i~=1 146 146 nbaver=floor(nbaver_init/nbfield_j); % number of bursts used for the sliding background, 147 if isequal( floor(nbaver/2),nbaver)147 if isequal(mod(nbaver,2),0)% if nbaver is even 148 148 nbaver=nbaver+1;%put the number of burst to an odd number (so the middle burst is defined) 149 149 end … … 170 170 step=nbfield_j;%case of bursts: the sliding background is shifted by the length of one burst 171 171 end 172 nbaver_ima=str2 num(answer{2});%number of images for the sliding background172 nbaver_ima=str2double(answer{2});%number of images for the sliding background 173 173 nbaver=ceil(nbaver_ima/step);%number of bursts for the sliding background 174 if isequal( floor(nbaver/2),nbaver)174 if isequal(mod(nbaver,2),0)% if nbaver is even 175 175 nbaver=nbaver+1;%set the number of bursts to an odd number (so the middle burst is defined) 176 176 end … … 178 178 ParamOut.ActionInput.CheckVolume=strcmp(answer{1},'Yes'); 179 179 ParamOut.ActionInput.SlidingSequenceLength=nbaver_ima; 180 ParamOut.ActionInput.BrightnessRankThreshold=str2 num(answer{3});180 ParamOut.ActionInput.BrightnessRankThreshold=str2double(answer{3}); 181 181 182 182 % apply the image rescaling function 'level' (avoid the blinking effects of bright particles) … … 198 198 199 199 %% input preparation 200 nbaver_ima=Param.ActionInput.SlidingSequenceLength;201 200 NbSlice=Param.IndexRange.NbSlice; 202 201 if ~isequal(NbSlice,1) … … 251 250 nbaver_ima=Param.ActionInput.SlidingSequenceLength;%number of images for the sliding background 252 251 nbaver=ceil(nbaver_ima/step);%number of bursts for the sliding background 253 if isequal( floor(nbaver/2),nbaver)252 if isequal(mod(nbaver,2),0) 254 253 nbaver=nbaver+1;%set the number of bursts to an odd number (so the middle burst is defined) 255 254 end
Note: See TracChangeset
for help on using the changeset viewer.