Ignore:
Timestamp:
Jul 16, 2024, 9:57:54 AM (4 months ago)
Author:
sommeria
Message:

script_delete_PCO added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/series/civ_series.m

    r1158 r1160  
    952952%  .DVDY
    953953
    954 function [xtable,ytable,utable,vtable,ctable,F,result_conv,errormsg] = civ (par_civ)
     954function [xtable,ytable,utable,vtable,ctable,FF,result_conv,errormsg] = civ (par_civ)
    955955
    956956%% prepare measurement grid
     
    972972    par_civ.Grid(:,2)=reshape(GridY,[],1);% increases with array index
    973973    %
    974     %
    975974    % minix=floor(par_civ.Dx/2)-0.5;
    976975    % maxix=minix+par_civ.Dx*floor((par_civ.ImageWidth-1)/par_civ.Dx);
     
    10011000vtable=shifty;%zeros(nbvec,1);
    10021001ctable=zeros(nbvec,1);
    1003 F=zeros(nbvec,1);
     1002FF=zeros(nbvec,1);
    10041003result_conv=[];
    10051004errormsg='';
     
    10581057        iref=round(par_civ.Grid(ivec,1)+0.5);% xindex on the image A for the middle of the correlation box
    10591058        jref=round(par_civ.ImageHeight-par_civ.Grid(ivec,2)+0.5);%  j index  for the middle of the correlation box in the image A
    1060         F(ivec)=0;
     1059        FF(ivec)=0;
    10611060        subrange1_x=iref-ibx2:iref+ibx2;% x indices defining the first subimage
    10621061        subrange1_y=jref-iby2:jref+iby2;% y indices defining the first subimage
     
    10781077            sizemask=sum(sum(mask1_crop))/(numel(subrange1_y)*numel(subrange1_x));%size of the masked part relative to the correlation sub-image
    10791078            if sizemask > 1/2% eliminate point if more than half of the correlation box is masked
    1080                 F(ivec)=1; %
     1079                FF(ivec)=1; %
    10811080                utable(ivec)=NaN;
    10821081                vtable(ivec)=NaN;
     
    10921091        end
    10931092        %threshold on image minimum
    1094         if F(ivec)~=1
     1093        if FF(ivec)==0
    10951094            if check_MinIma && (image1_mean < par_civ.MinIma || image2_mean < par_civ.MinIma)
    1096                 F(ivec)=1;
     1095                FF(ivec)=1;
    10971096                %threshold on image maximum
    10981097            elseif check_MaxIma && (image1_mean > par_civ.MaxIma || image2_mean > par_civ.MaxIma)
    1099                 F(ivec)=1;
    1100             end
    1101             if F(ivec)==1
     1098                FF(ivec)=1;
     1099            end
     1100            if FF(ivec)==1
    11021101                utable(ivec)=NaN;
    11031102                vtable(ivec)=NaN;
     
    11271126                sum_square=sum(sum(image1_crop.*image1_crop));
    11281127                %reference: Oliver Pust, PIV: Direct Cross-Correlation
     1128                %%%%%% correlation calculation
    11291129                result_conv= conv2(image2_crop,flip(flip(image1_crop,2),1),'valid');
     1130                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    11301131                corrmax= max(max(result_conv));
    11311132                result_conv=(result_conv/corrmax)*255; %normalize, peak=always 255
     
    11381139                    try
    11391140                        if par_civ.CorrSmooth==1
    1140                             [vector,F(ivec)] = SUBPIXGAUSS (result_conv,x,y);
     1141                            [vector,FF(ivec)] = SUBPIXGAUSS (result_conv,x,y);
    11411142                        elseif par_civ.CorrSmooth==2
    1142                             [vector,F(ivec)] = SUBPIX2DGAUSS (result_conv,x,y);
     1143                            [vector,FF(ivec)] = SUBPIX2DGAUSS (result_conv,x,y);
    11431144                        else
    1144                             [vector,F(ivec)] = quadr_fit(result_conv,x,y);
     1145                            [vector,FF(ivec)] = quadr_fit(result_conv,x,y);
    11451146                        end
    11461147                        utable(ivec)=vector(1)*mesh+shiftx(ivec);
     
    11541155                            utable(ivec)=0;
    11551156                            vtable(ivec)=0;
    1156                             F(ivec)=1;
     1157                            FF(ivec)=1;
    11571158                        end
    11581159                        ctable(ivec)=corrmax/sum_square;% correlation value
    11591160                    catch ME
    1160                         F(ivec)=1;
     1161                        FF(ivec)=1;
    11611162                        disp(ME.message)
    11621163                    end
    11631164                else
    1164                     F(ivec)=1;
     1165                    FF(ivec)=1;
    11651166                end
    11661167            end
     
    11881189%http://urapiv.wordpress.com
    11891190peaky = y;peakx=x;
    1190 if y < npy && y > 1 && x < npx-1 && x > 1
    1191     f0 = log(result_conv(y,x));
    1192     f1 = log(result_conv(y-1,x));
    1193     f2 = log(result_conv(y+1,x));
    1194     peaky = peaky+ (f1-f2)/(2*f1-4*f0+2*f2);
    1195     f1 = log(result_conv(y,x-1));
    1196     f2 = log(result_conv(y,x+1));
    1197     peakx = peakx+ (f1-f2)/(2*f1-4*f0+2*f2);
    1198 else
    1199     F=1; % warning flag for vector truncated by the limited search box
    1200 end
     1191% if y < npy && y > 1 && x < npx-1 && x > 1
     1192%     f0 = log(result_conv(y,x));
     1193%     f1 = log(result_conv(y-1,x));
     1194%     f2 = log(result_conv(y+1,x));
     1195%     peaky = peaky+ (f1-f2)/(2*f1-4*f0+2*f2);
     1196%     f1 = log(result_conv(y,x-1));
     1197%     f2 = log(result_conv(y,x+1));
     1198%     peakx = peakx+ (f1-f2)/(2*f1-4*f0+2*f2);
     1199% else
     1200%     F=1; % warning flag for vector truncated by the limited search box
     1201% end
    12011202
    12021203vector=[peakx-floor(npx/2)-1 peaky-floor(npy/2)-1];
Note: See TracChangeset for help on using the changeset viewer.