%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% warp.m subroutine for Affine Parameter Calculation
% -------------------------------------------------
%  AUTHOR: Maher Khoury
%    DATE: March 1, 1999
% PURPOSE:
%          Motion Compensates frame2 using input u and v vectors
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function warped = warp(im, k);

[x, y] = meshgrid(1:size(im,2), 1:size(im,1));

u = k(1).*x + k(2).*y + k(3);
v = -k(2).*x + k(1).*y + k(4);

x_warped = x + u;
y_warped = y + v;

warped = interp2(x, y, im, x_warped, y_warped, 'linear');

warped(isnan(warped)) = 0;