function [R,T] = mvg_ex08_prac_task5(x,y,lambda) nImages = size(x,1); nPoints = size(y,1); R = zeros(3,3,nImages); T = zeros(3,nImages); for i=1:nImages P = zeros(3*nPoints,12); for j=1:nPoints % Columns 1-9: x1 = [x(1,j);y(1,j);1]; % jth point in image 1 xi = [x(i,j);y(i,j);1]; % jth point in image i P(j*3-2:j*3,1:9) = kron(x1',hat(xi)); % Columns 10-12: alpha = 1 / lambda(j); P(j*3-2:j*3,10:12) = alpha .* hat(xi); end % Solve P*(R,T)=0 (eigenvector to the smallest eigenvalue of P'P): [V,D] = eig(P'*P); g = V(:,1); % Unstack R and T: R(:,:,i) = reshape(g(1:9,1),3,3); T(:,i) = g(10:12,1); end end function A = hat(v) A = [0 -v(3) v(2) ; v(3) 0 -v(1) ; -v(2) v(1) 0]; end