KK0 = [ 9.8490634765625000e+003 0. 2.3789833984375000e+003 ;...
0. 9.8490634765625000e+003 1.7011253662109375e+003 ; ...
0. 0. 1. ] ;
rotvec0 = [ 0 0 0 ] ;
transvec0 = [ 0 0 0 ].' ;
PP0 = KK0 * [ RotMatrix(0, [1,0,0]), transvec0 ] ;
KK1 = [ 7.1750791015625000e+003 0. 2.4779909667968750e+003 ; ...
0. 7.1750791015625000e+003 1.5908875732421875e+003 ; ...
0. 0. 1. ] ;
rotvec1 = [ -1.4065706325327406e-002 1.3712001490606401e-001 2.2151575978542927e-003 ] ;
transvec1 = [ -3.6780345263841093e+002 2.8410817957758999e-001 -5.4874311039726160e+002 ].' ;
PP1 = KK1 * [ RotMatrix(norm(rotvec1), rotvec1), transvec1 ] ;
xkoor = [ -392.555 394.961 394.704 -398.128 ] ;
ykoor = -1*[ -043.410 -060.136 329.221 313.227 ] ;
zkoor = -1*[ -2287.690 -2234.0191 -2223.241 -2268.321 ] ;
dx =1904; dy =950;
xi = linspace(-1,1,dx) ; eta = linspace(-1,1,dy);
c_x(1) = sum(xkoor)/4;
c_x(2) = -(xkoor(1) - xkoor(2)- xkoor(3) + xkoor(4))/4;
c_x(3) = -(xkoor(1) + xkoor(2)- xkoor(3) - xkoor(4))/4;
c_x(4) = +(xkoor(1) - xkoor(2)+ xkoor(3) - xkoor(4))/4;
c_y(1) = sum(ykoor)/4;
c_y(2) = -(ykoor(1) - ykoor(2)- ykoor(3) + ykoor(4))/4;
c_y(3) = -(ykoor(1) + ykoor(2)- ykoor(3) - ykoor(4))/4;
c_y(4) = +(ykoor(1) - ykoor(2)+ ykoor(3) - ykoor(4))/4;
c_z(1) = sum(zkoor)/4;
c_z(2) = -(zkoor(1) - zkoor(2)- zkoor(3) + zkoor(4))/4;
c_z(3) = -(zkoor(1) + zkoor(2)- zkoor(3) - zkoor(4))/4;
c_z(4) = +(zkoor(1) - zkoor(2)+ zkoor(3) - zkoor(4))/4;
[X,Y] = meshgrid(xi,eta) ;
Z = X.*Y ;
c_mat = [c_x ; c_y ; c_z] ;
matmult = [ones(1,length(Y(:))); Y(:).'; X(:).'; Z(:).'] ;
mapped = c_mat * matmult ;
surf_gridX = reshape(mapped(1,:),[dy dx]).';
surf_gridY = reshape(mapped(2,:),[dy dx]).';
surf_gridZ = reshape(mapped(3,:),[dy dx]).';
mapped_pic0 = PP0*[mapped ; ones(1,length(Y(:))) ];
mapped_pic0 = mapped_pic0(1:2,:) ./ mapped_pic0(3,:) ;
[I] = imread('Frame-004635.png') ;
test=uint8(interp2(1:size(I,2),1:size(I,1),single(flipud(I(:,:))),mapped_pic0(1,:),mapped_pic0(2,:),'cubic',0)) ;
surf_color = reshape(test,[dy dx]).' ;
figure
ts = surf(surf_gridX,surf_gridY,surf_gridZ,surf_color,'EdgeColor','none','FaceColor','interp')
colormap(gray)
view(-18,71)