Changeset 397 for trunk/src/civ_matlab.m


Ignore:
Timestamp:
Apr 26, 2012, 8:59:09 AM (12 years ago)
Author:
sommeria
Message:

civ_matlab and patch improved, changes in the management of interpolation (still in progress).
adapatation to movies (use of VideoReader?)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/civ_matlab.m

    r389 r397  
    7272        end
    7373    else
    74         if isfield(par_civ1,'ImageA') && ischar(par_civ1.ImageA) % case with no image: only the PIV grid is calculated
     74        if isfield(par_civ1,'ImageA')&&(ischar(par_civ1.ImageA)||strcmp(class(par_civ1.ImageA),'VideoReader')) % case with no image: only the PIV grid is calculated
    7575            [Field,ParamOut,errormsg] = read_field(par_civ1.ImageA,par_civ1.FileTypeA,[],par_civ1.i1);
    7676            par_civ1.ImageA=Field.A;%imread(par_civ1.ImageA);%[Field,ParamOut,errormsg] = read_field(ObjectName,FileType,ParamIn,num)
    7777        end
    78         if isfield(par_civ1,'ImageB')&& ischar(par_civ1.ImageB)
     78        if isfield(par_civ1,'ImageB')&& (ischar(par_civ1.ImageB)||strcmp(class(par_civ1.ImageA),'VideoReader'))
    7979            [Field,ParamOut,errormsg] = read_field(par_civ1.ImageB,par_civ1.FileTypeB,[],par_civ1.i2);
    8080            par_civ1.ImageB=Field.A;%=imread(par_civ1.ImageB);
     
    177177    Data.Patch1_Threshold=Param.Patch1.MaxDiff;
    178178    Data.Patch1_SubDomain=Param.Patch1.SubdomainSize;
     179    nbvar=length(Data.ListVarName);
    179180    Data.ListVarName=[Data.ListVarName {'Civ1_U_smooth','Civ1_V_smooth','Civ1_SubRange','Civ1_NbSites','Civ1_Coord_tps','Civ1_U_tps','Civ1_V_tps'}];
    180181    Data.VarDimName=[Data.VarDimName {'NbVec1','NbVec1',{'NbCoord','Two','NbSubDomain1'},{'NbSubDomain1'},...
    181182             {'NbVec1Sub','NbCoord','NbSubDomain1'},{'Nbtps1','NbSubDomain1'},{'Nbtps1','NbSubDomain1'}}];
    182     nbvar=length(Data.ListVarName);
    183     Data.VarAttribute{nbvar-1}.Role='vector_x';
    184     Data.VarAttribute{nbvar}.Role='vector_y';
     183    Data.VarAttribute{nbvar+1}.Role='vector_x';
     184    Data.VarAttribute{nbvar+2}.Role='vector_y';
     185    Data.VarAttribute{nbvar+5}.Role='coord_tps';
     186    Data.VarAttribute{nbvar+6}.Role='vector_x_tps';
     187    Data.VarAttribute{nbvar+7}.Role='vector_y_tps';
    185188    Data.Civ1_U_smooth=zeros(size(Data.Civ1_X));
    186189    Data.Civ1_V_smooth=zeros(size(Data.Civ1_X));
     
    204207    par_civ2=Param.Civ2;
    205208    if ~isfield (Param,'Civ1') || ~strcmp(Param.Civ1.ImageA,par_civ2.ImageA)
    206         par_civ2.ImageA=imread(Param.Civ2.ImageA);%read first image if not already done for civ1
     209        %read first image if not already done for civ1
     210        [Field,ParamOut,errormsg] = read_field(par_civ2.ImageA,par_civ2.FileTypeA,[],par_civ2.i1);
     211        par_civ2.ImageA=Field.A;
     212        %      par_civ2.ImageA=imread(Param.Civ2.ImageA);
    207213    else
    208214        par_civ2.ImageA=par_civ1.ImageA;
    209215    end
    210216    if ~isfield (Param,'Civ1') || ~strcmp(Param.Civ1.ImageB,par_civ2.ImageB)
    211         par_civ2.ImageB=imread(Param.Civ2.ImageB);%read second image if not already done for civ1
    212          else
     217        %read first image if not already done for civ1
     218        [Field,ParamOut,errormsg] = read_field(par_civ2.ImageB,par_civ2.FileTypeB,[],par_civ2.i2);
     219        par_civ2.ImageB=Field.A;
     220        %      par_civ2.ImageB=imread(Param.Civ2.ImageB);
     221    else
    213222        par_civ2.ImageB=par_civ1.ImageB;
    214223    end
     
    330339    else
    331340        Data.ListVarName=[Data.ListVarName {'Civ2_FF'}];
    332         Data.VarDimName=[Data.VarDimName {'nbvec2'}];
     341        Data.VarDimName=[Data.VarDimName {'NbVec2'}];
    333342        nbvar=length(Data.ListVarName);
    334343        Data.VarAttribute{nbvar}.Role='errorflag';   
     
    345354    Data.Patch2_Threshold=Param.Patch2.MaxDiff;
    346355    Data.Patch2_SubDomain=Param.Patch2.SubdomainSize;
    347     Data.ListVarName=[Data.ListVarName {'Civ2_U_Diff','Civ2_V_Diff','Civ2_SubRange','Civ2_NbSites','Civ2_Coord_tps','Civ2_U_tps','Civ2_V_tps'}];
     356    nbvar=length(Data.ListVarName);
     357    Data.ListVarName=[Data.ListVarName {'Civ2_U_smooth','Civ2_V_smooth','Civ2_SubRange','Civ2_NbSites','Civ2_Coord_tps','Civ2_U_tps','Civ2_V_tps'}];
    348358    Data.VarDimName=[Data.VarDimName {'NbVec2','NbVec2',{'NbCoord','Two','NbSubDomain2'},{'NbSubDomain2'},...
    349359             {'NbVec2Sub','NbCoord','NbSubDomain2'},{'Nbtps2','NbSubDomain2'},{'Nbtps2','NbSubDomain2'}}];
     
    351361%     Data.VarDimName=[Data.VarDimName {'NbVec2','NbVec2',{'NbSubDomain2','Two'},{'NbSubDomain2','Two'},...
    352362%              {'NbVec2Sub','NbSubDomain2'},{'NbVec2Sub','NbSubDomain2'},{'Nbtps2','NbSubDomain2'},{'Nbtps2','NbSubDomain2'},{'NbVec2Sub','NbSubDomain2'}}];
    353     nbvar=length(Data.ListVarName);
    354     Data.VarAttribute{nbvar-1}.Role='vector_x';
    355     Data.VarAttribute{nbvar}.Role='vector_y';
    356     Data.Civ2_U_Diff=zeros(size(Data.Civ2_X));
    357     Data.Civ2_V_Diff=zeros(size(Data.Civ2_X));
     363
     364        Data.VarAttribute{nbvar+1}.Role='vector_x';
     365    Data.VarAttribute{nbvar+2}.Role='vector_y';
     366    Data.VarAttribute{nbvar+5}.Role='coord_tps';
     367    Data.VarAttribute{nbvar+6}.Role='vector_x_tps';
     368    Data.VarAttribute{nbvar+7}.Role='vector_y_tps';
     369    Data.Civ2_U_smooth=zeros(size(Data.Civ2_X));
     370    Data.Civ2_V_smooth=zeros(size(Data.Civ2_X));
    358371    if isfield(Data,'Civ2_FF')
    359372        ind_good=find(Data.Civ2_FF==0);
     
    363376    [Data.Civ2_SubRange,Data.Civ2_NbSites,Data.Civ2_Coord_tps,Data.Civ2_U_tps,Data.Civ2_V_tps,tild,Ures, Vres,tild,FFres]=...
    364377         filter_tps([Data.Civ2_X(ind_good) Data.Civ2_Y(ind_good)],Data.Civ2_U(ind_good),Data.Civ2_V(ind_good),[],Data.Patch2_SubDomain,Data.Patch2_Rho,Data.Patch2_Threshold);
    365       Data.Civ2_U_Diff(ind_good)=Data.Civ2_U(ind_good)-Ures;
    366       Data.Civ2_V_Diff(ind_good)=Data.Civ2_V(ind_good)-Vres;
    367       Data.Civ2_FF(ind_good)=FFres;
    368       Data.CivStage=Data.CivStage+1;                             
     378    Data.Civ2_U_smooth(ind_good)=Ures;
     379    Data.Civ2_V_smooth(ind_good)=Vres;
     380    Data.Civ2_FF(ind_good)=FFres;
     381    Data.CivStage=Data.CivStage+1;                             
    369382end 
    370383
Note: See TracChangeset for help on using the changeset viewer.