책에 있는 내용을 참고해서 직접 작성한 코드입니다. 직교성을 가진 소실점(vanishing point)이 주어졌을 때 cholesky 분해를 이용하여 카메라 내부 파라미터 K를 계산하는 코드입니다. 여기서 가정은 square pixel이라는 것과 초점거리 fx = fy 가 같다는 것입니다. cholesky 분해를 위해서는 Omega 행렬이 positive definite 해야만 합니다. 소실점의 값이 제대로 계산되어 입력되지 않으면 cholesky 분해에서 positive definite이 아니라는 에러가 나올 것입니다. function K = sky_K_from_IAC(v1, v2) % function K = sky_K_from_IAC(v1, v2) % Input : v1, v2 -> vanishing points % Output : K -> internal parameters % % Reference : Multiple view geometry in computer vision, second edition(p.226) % Assumption : w11 = w22, w12 = w21 = 0 % w = [w1 0 w2; % 0 w1 w3; % w2 w3 w4]; % % Shin, Ki-Young % Biomedical Engineering Lab. % Sungkyunkwan univ. % Data : 2008/12/4 for i=1:length(v1) A(i,:) = [ v1(i,1) * v2(i,1) + v1(i,2) * v2(i,2) v1(i,3) * v2(i,1) + v1(i,1) * v2(i,3) v1(i,3) * v2(i,2) + v1(i,2) * v2(i,3) v1(i,3) * v2(i,3)]; end [U, S, V] = svd(A); W = V(:,end); % Omega must be positive definite Omega = [W(1) 0 W(2); 0 W(...
댓글
댓글 쓰기