Mentions légales du service

Skip to content
Snippets Groups Projects
Commit cc61e83b authored by DIB Elian's avatar DIB Elian
Browse files

Added support for different models and coupling

parent 3b8c5c35
Branches develop master
No related tags found
No related merge requests found
function [SRXq,SRYq,SRDisp] = get_affine_query_coordinates(Label,lfgv,dispParams)
function [SRXq,SRYq,SRDispX,SRDispY] = get_affine_query_coordinates(Label,lfgv,dispParams)
%GET_AFFINE_QUERY_COORDINATES Summary of this function goes here
% Detailed explanation goes here
%%
......@@ -10,7 +10,7 @@ lfgv{3} = 1;
ugv = reshape(lfgv{4},1,1,1,[],1);
vgv = reshape(lfgv{5},1,1,1,1,[]);
[X,Y,~,U,V] = ndgrid(lfgv{:});
[SRXq,SRYq,SRDisp] = deal(cell(1,numLab));
[SRXq,SRYq,SRDispX,SRDispY] = deal(cell(1,numLab));
% Replace missing values by zero (to avoid interpolation errors)
Label(isnan(Label))=0;
......@@ -32,26 +32,39 @@ for lab = 1:numLab
b = dispParams{lab}(2);
c = dispParams{lab}(3);
if numel(dispParams{lab})>=6
d = dispParams{lab}(4);
e = dispParams{lab}(5);
f = dispParams{lab}(6);
else
d = a;
e = b;
f = c;
end
X_ = X(M(:));
Y_ = Y(M(:));
U_ = U(M(:));
V_ = V(M(:));
tX = X_-U_.*(a.*X_+b.*Y_+c)./( 1+a.*U_+b.*V_);
tY = Y_-V_.*(a.*X_+b.*Y_+c)./( 1+a.*U_+b.*V_);
tY = Y_-V_.*(d.*X_+e.*Y_+f)./( 1+d.*U_+e.*V_);
srxgv = floor(min(tX(:))):ceil(max(tX(:)));
srygv = floor(min(tY(:))):ceil(max(tY(:)));
[X_,Y_] = ndgrid(srxgv,srygv);
D_ = a.*X_+b.*Y_+c;
D_ = reshape(D_,size(X_));
Dx = a.*X_+b.*Y_+c;
Dx = reshape(Dx,size(X_));
Dy = d.*X_+e.*Y_+f;
Dy = reshape(Dy,size(X_));
[SRXq{lab},SRYq{lab}] = ndgrid(srxgv,srygv,lfgv{3:end});
SRXq{lab} = SRXq{lab}+ugv.*D_;
SRYq{lab} = SRYq{lab}+vgv.*D_;
SRXq{lab} = SRXq{lab}+ugv.*Dx;
SRYq{lab} = SRYq{lab}+vgv.*Dy;
SRDisp{lab} = ones(size(SRXq{lab})).*D_;
SRDispX{lab} = ones(size(SRXq{lab})).*Dx;
SRDispY{lab} = ones(size(SRXq{lab})).*Dy;
end
progress('',0);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment