Changeset 873 for trunk/src/series
- Timestamp:
- Feb 17, 2015, 1:46:13 AM (10 years ago)
- Location:
- trunk/src/series
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/series/civ_input.m
r862 r873 373 373 374 374 %% Civ1 parameters 375 Param.CheckCiv1=1; 375 376 Param.Civ1.CorrBoxSize=[25 25]; 376 377 Param.Civ1.SearchBoxSize=[55 55]; … … 381 382 Param.Civ1.CheckGrid=0; 382 383 Param.Civ1.CheckMask=0; 384 Param.Civ1.Mask=''; 383 385 Param.Civ1.CheckThreshold=0; 384 386 Param.Civ1.TestCiv1=0; 385 387 386 388 %% Fix1 parameters 389 Param.CheckFix1=1; 387 390 Param.Fix1.CheckFmin2=1; 388 391 Param.Fix1.CheckF3=1; … … 390 393 391 394 %% Patch1 parameters 395 Param.CheckPatch1=1; 392 396 Param.Patch1.FieldSmooth=10; 393 397 Param.Patch1.MaxDiff=1.5000; … … 396 400 397 401 %% Civ2 parameters 402 Param.CheckCiv2=1; 398 403 Param.Civ2.CorrBoxSize=[21 21]; 399 404 Param.Civ2.SearchBoxSize=[27 27]; … … 403 408 Param.Civ2.CheckGrid=0; 404 409 Param.Civ2.CheckMask=0; 410 Param.Civ2.Mask=''; 405 411 Param.Civ2.CheckThreshold=0; 406 412 Param.Civ2.TestCiv2=0; 407 413 408 414 %% Fix2 parameters 415 Param.CheckFix2=1; 409 416 Param.Fix2.CheckFmin2=1; 410 417 Param.Fix2.CheckF4=1; … … 413 420 414 421 %% Patch2 parameters 422 Param.CheckPatch2=1; 415 423 Param.Patch2.FieldSmooth=2; 416 424 Param.Patch2.MaxDiff=1.5000; … … 419 427 420 428 fill_GUI(Param,handles.civ_input)% fill the elements of the GUI series with the input parameters 429 update_CivOptions(handles,0) 421 430 422 431 % ----------------------------------------------------------------------- … … 1129 1138 % --- Executes on selection in menu CorrSmooth. 1130 1139 function num_CorrSmooth_Callback(hObject, eventdata, handles) 1131 set(handles. configSource,'String','NEW')1140 set(handles.ConfigSource,'String','NEW') 1132 1141 set(handles.OK,'BackgroundColor',[1 0 1]) 1133 1142 %------------------------------------------------------------------------ … … 1473 1482 end 1474 1483 set(hObject,'BackgroundColor',[1 0 1]) 1475 set(handles. configSource,'String','NEW')1484 set(handles.ConfigSource,'String','NEW') 1476 1485 set(handles.OK,'BackgroundColor',[1 0 1]) 1477 1486 %------------------------------------------------------------------------ … … 1518 1527 set(handle_txtbox,'Visible','off') 1519 1528 end 1520 set(handles. configSource,'String','NEW')1521 set(handles. configSource,'BackgroundColor',[1 0 1])1529 set(handles.ConfigSource,'String','NEW') 1530 set(handles.ConfigSource,'BackgroundColor',[1 0 1]) 1522 1531 1523 1532 % %------------------------------------------------------------------------ … … 1735 1744 set(obj,'Visible','off') 1736 1745 end 1737 set(handles. configSource,'String','NEW')1746 set(handles.ConfigSource,'String','NEW') 1738 1747 set(handles.OK,'BackgroundColor',[1 0 1]) 1739 1748 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1748 1757 if get(handles.TestCiv1,'Value') 1749 1758 set(handles.TestCiv1,'BackgroundColor',[1 1 0])% paint TestCiv1 button to yellow to confirm civ launch 1750 %Param.Action.RUN=1; 1751 1759 set(handles.CheckFix1,'value',0)% desactivate next step 1760 set(handles.CheckPatch1,'value',0)% desactivate next step 1761 set(handles.CheckCiv2,'value',0)% desactivate next step 1762 set(handles.CheckFix2,'value',0)% desactivate next step 1763 set(handles.CheckPatch2,'value',0)% desactivate next step 1764 update_CivOptions(handles,0) 1752 1765 hseries=findobj(allchild(0),'Tag','series'); 1753 1766 Param=read_GUI(hseries); … … 1887 1900 end 1888 1901 figure(1) 1889 hold on 1890 semilogx(SmoothingParam,DiffVel,'b',SmoothingParam,NbExclude,'r') 1902 semilogx(SmoothingParam,DiffVel,'b',SmoothingParam,NbExclude,'r',SmoothingParam,0.2*ones(size(SmoothingParam)),'m') 1891 1903 grid on 1892 legend('rms velocity diff. Patch1-Civ1 (pixels)','proportion of excluded vectors (between 0 to 1)' )1904 legend('rms velocity diff. Patch1-Civ1 (pixels)','proportion of excluded vectors (between 0 to 1)','recommended diff Patch1-Civ1') 1893 1905 xlabel('smoothing parameter') 1894 1906 ylabel('smoothing effect') … … 1912 1924 if get(handles.TestCiv2,'Value') 1913 1925 set(handles.TestCiv2,'BackgroundColor',[1 1 0])% paint TestCiv1 button to yellow to confirm civ launch 1926 set(handles.CheckFix2,'value',0)% desactivate next step 1927 set(handles.CheckPatch2,'value',0)% desactivate next step 1928 update_CivOptions(handles,0) 1914 1929 hseries=findobj(allchild(0),'Tag','series'); 1915 1930 Param=read_GUI(hseries); … … 2065 2080 end 2066 2081 figure(1) 2067 hold on 2068 semilogx(SmoothingParam,DiffVel,'b',SmoothingParam,NbExclude,'r') 2082 semilogx(SmoothingParam,DiffVel,'b',SmoothingParam,NbExclude,'r',SmoothingParam,0.1*ones(size(SmoothingParam)),'m') 2069 2083 grid on 2070 legend('rms velocity diff. Patch2-Civ2 (pixels)','proportion of excluded vectors (between 0 to 1)' )2084 legend('rms velocity diff. Patch2-Civ2 (pixels)','proportion of excluded vectors (between 0 to 1)','recommended value diff. Patch2-Civ2') 2071 2085 xlabel('smoothing parameter') 2072 2086 ylabel('smoothing effect') -
trunk/src/series/civ_series.m
r862 r873 705 705 par_civ2.SearchBoxShift=(Civ2_Dt/Civ1_Dt)*[Shiftx(nbval>=1)./nbval(nbval>=1) Shifty(nbval>=1)./nbval(nbval>=1)]; 706 706 % shift the grid points by half the expected shift to provide the correlation box position in image A 707 par_civ2.Grid=[par_civ2.Grid(nbval>=1,1)-par_civ2.SearchBoxShift( nbval>=1,1)/2 par_civ2.Grid(nbval>=1,2)-par_civ2.SearchBoxShift(nbval>=1,2)/2];707 par_civ2.Grid=[par_civ2.Grid(nbval>=1,1)-par_civ2.SearchBoxShift(:,1)/2 par_civ2.Grid(nbval>=1,2)-par_civ2.SearchBoxShift(:,2)/2]; 708 708 if par_civ2.CheckDeformation 709 709 par_civ2.DUDX=DUDX./nbval; … … 732 732 end 733 733 end 734 % Data.Civ2_Time=1;735 % Data.Civ2_Dt=1;736 734 for ilist=1:length(list_param) 737 735 Data.(Civ2_param{4+ilist})=Param.ActionInput.Civ2.(list_param{ilist}); … … 961 959 checkmask=0; 962 960 MinA=min(min(par_civ.ImageA)); 963 MinB=min(min(par_civ.ImageB)); 961 %MinB=min(min(par_civ.ImageB)); 962 check_undefined=false(size(par_civ.ImageA)); 964 963 if isfield(par_civ,'Mask') && ~isempty(par_civ.Mask) 965 964 checkmask=1; … … 968 967 return 969 968 end 970 % check_noflux=(par_civ.Mask<100) ;%TODO: to implement971 969 check_undefined=(par_civ.Mask<200 & par_civ.Mask>=20 ); 972 par_civ.ImageA(check_undefined)= MinA;% put image A to zero (i.e. the min image value) in the undefined area973 par_civ.ImageB(check_undefined)= MinB;% put image B to zero (i.e. the min image value) in the undefined area970 par_civ.ImageA(check_undefined)=0;% put image A to zero (i.e. the min image value) in the undefined area 971 par_civ.ImageB(check_undefined)=0;% put image B to zero (i.e. the min image value) in the undefined area 974 972 end 975 973 … … 994 992 image1_crop=MinA*ones(numel(subrange1_y),numel(subrange1_x));% default value=min of image A 995 993 image2_crop=MinA*ones(numel(subrange2_y),numel(subrange2_x));% default value=min of image A 994 mask1_crop=ones(numel(subrange1_y),numel(subrange1_x));% default value=1 for mask 995 mask2_crop=ones(numel(subrange2_y),numel(subrange2_x));% default value=min for mask 996 996 check1_x=subrange1_x>=1 & subrange1_x<=par_civ.ImageWidth;% check which points in the subimage 1 are contained in the initial image 1 997 997 check1_y=subrange1_y>=1 & subrange1_y<=par_civ.ImageHeight; … … 1000 1000 image1_crop(check1_y,check1_x)=par_civ.ImageA(subrange1_y(check1_y),subrange1_x(check1_x));%extract a subimage (correlation box) from image A 1001 1001 image2_crop(check2_y,check2_x)=par_civ.ImageB(subrange2_y(check2_y),subrange2_x(check2_x));%extract a larger subimage (search box) from image B 1002 image1_mean=mean(mean(image1_crop)); 1003 image2_mean=mean(mean(image2_crop)); 1004 %threshold on image minimum 1005 if check_MinIma && (image1_mean < par_civ.MinIma || image2_mean < par_civ.MinIma) 1006 F(ivec)=3; 1007 end 1008 %threshold on image maximum 1009 if check_MaxIma && (image1_mean > par_civ.MaxIma || image2_mean > par_civ.MaxIma) 1010 F(ivec)=3; 1011 end 1012 1002 mask1_crop(check1_y,check1_x)=check_undefined(subrange1_y(check1_y),subrange1_x(check1_x));%extract a mask subimage (correlation box) from image A 1003 mask2_crop(check2_y,check2_x)=check_undefined(subrange2_y(check2_y),subrange2_x(check2_x));%extract a mask subimage (search box) from image B 1004 sizemask=sum(sum(mask1_crop))/(numel(subrange1_y)*numel(subrange1_x));%size of the masked part relative to the correlation sub-image 1005 if sizemask > 1/2% eliminate point if more than half of the correlation box is masked 1006 F(ivec)=3; % 1007 else 1008 image1_mean=mean(mean(image1_crop))/(1-sizemask); 1009 image2_mean=mean(mean(image2_crop))/(1-sizemask); 1010 %threshold on image minimum 1011 if check_MinIma && (image1_mean < par_civ.MinIma || image2_mean < par_civ.MinIma) 1012 F(ivec)=3; 1013 end 1014 %threshold on image maximum 1015 if check_MaxIma && (image1_mean > par_civ.MaxIma || image2_mean > par_civ.MaxIma) 1016 F(ivec)=3; 1017 end 1018 end 1013 1019 if F(ivec)~=3 1014 image1_crop= image1_crop-image1_mean;%substract the mean1015 image2_crop= image2_crop-image2_mean;1020 image1_crop=(image1_crop-image1_mean).*~mask1_crop;%substract the mean, put to zero the masked parts 1021 image2_crop=(image2_crop-image2_mean).*~mask2_crop; 1016 1022 if CheckDeformation 1017 1023 xi=(1:mesh:size(image1_crop,2));
Note: See TracChangeset
for help on using the changeset viewer.