script5 dh2 (directed homography)

clear
close all
rgb = imread('script5a.jpg');
imshow(rgb);
vi = [0 0 1];
vk = [-1 0 0];
vj = cross(vk,vi);
f = 879.2;
KK = [ f 0 320; 0 f 320; 0 0 1];
R = [vi; vj; vk];

T1 = R/KK;

newcp = [4 0]';

M = [300 0 0; 0 300 0; 0 0 1]*[eye(2,2) -newcp ;  0 0 1];
T = M*T1;
tf = projective2d(T');

imageSize = [800 800];
xWorldLimits = [-400 1000];
yWorldLimits = [-700 700];

RA = imref2d(imageSize,xWorldLimits,yWorldLimits);

[out, RB] = imwarp(rgb,tf,'OutputView',RA);
imshow(out);

imshow(out);
Warning: Image is too big to fit on screen;
displaying at 67% 
Warning: Image is too big to fit on screen;
displaying at 67% 
%  100 pixels/foot, image scale 1/2  so 50 pixels/foot

imshow(out);
do_input = false;
if do_input
    hd1 = imdistline;
    hd2 = imdistline;
    pause
    pos1 = hd1.getPosition();
    pos2 = hd2.getPosition();
    save dh2 pos1 pos2
else
    load dh2
    hd1 = imdistline(gca,pos1(:,1),pos1(:,2));
    hd2 = imdistline(gca,pos2(:,1),pos2(:,2));
end
Warning: Image is too big to fit on screen;
displaying at 67%