script3
run script2 first
t = 0.0025; fn = 'output2.gif'; for nangle = 0:85 ang(1) = -nangle; R = rotx(ang(1),'deg'); tf = projective2d(inv(KK)*R*KK); [x, y] = transformPointsForward(tf,pts(:,1),pts(:,2)); pts2 = [x y]; kp(1,:) = pts2(1,:) - pts2(2,:); kp(2,:) = pts2(3,:) - pts2(4,:); for k=1:2 kp(k,:) = kp(k,:)/norm(kp(k,:)); end s = det(kp(1:2,:)); s = asin(s)*180/pi; str = sprintf('angle %g deg divergence %g deg',ang(1),s); disp(str); % ymax = max(pts2(:,2)); xrng = [min(pts2(:,1))-2000 max(pts2(:,1))+2000]; diff = xrng(2)-xrng(1); yrng = [ymax-diff ymax]; myref = imref2d([800 800],xrng,yrng); [img, ref] = imwarp(rgb,tf,'OutputView',myref,'FillValues',[255 255 200]); imshow(img); title(str); frame = getframe(); im = frame2im(frame); [A, map] = rgb2ind(im,256); if nangle==0 imwrite(A,map,fn,'gif','LoopCount',Inf,'DelayTime',t); else imwrite(A,map,fn,'gif','WriteMode','append','DelayTime',t); end end