2016-11-27 11 views
0

OpenCV 라이브러리를 기반으로 2 차원 3D 알고리즘을 사용하여 VSLAM 작업을 해결하고 있습니다. 이제 GPS 데이터를 사용하여 지리 참조 연산을 수행하려고합니다. I는 R, 각 카메라의 t 변환하고 KP1 및 KP2 사소한 기능추가 GPS 데이터로 스테레오 페어 (stereoopair)에서 적절한 지점을 삼각형 화하는 거대한 재 투영 오류

Triangulate(const cv::KeyPoint &kp1, const cv::KeyPoint &kp2, const cv::Mat &P1, const cv::Mat &P2, cv::Mat &x3D) { 
cv::Mat A(4,4,CV_32F); 

A.row(0) = kp1.pt.x*P1.row(2)-P1.row(0); 
A.row(1) = kp1.pt.y*P1.row(2)-P1.row(1); 
A.row(2) = kp2.pt.x*P2.row(2)-P2.row(0); 
A.row(3) = kp2.pt.y*P2.row(2)-P2.row(1); 

cv::Mat u,w,vt; 
cv::SVD::compute(A,w,u,vt,cv::SVD::MODIFY_A| cv::SVD::FULL_UV); 
x3D = vt.row(3).t(); 
x3D = x3D.rowRange(0,3)/x3D.at<float>(3); } 

사용하여 유사한 점을 삼각 - 좌우 화상 P1, P2 키포인트 - 프로젝션 행렬

I 이상한 직면을 문제 : 카메라 센터에서 간단한 거대한 변이를 만들 때 이전의 적절한 삼각 분할 된 점에서 큰 재 투영 오류가 발생했습니다. 카메라 센터에 민감한 포인트 삼각형에 대한 SVD 분해가 규모가 있습니까?

+0

지리 참조 연산에 GPS 데이터를 어떻게 사용하고 있습니까? 카메라 위치를 번역 만 하시겠습니까? – Ash

답변

0

코드의 다른 부분을 실수로 범했습니다. 죄송합니다.

+0

대답이 아닙니다. 질문을 다른 사람에게 도움이되지 않는다고 이해한다면 - 그냥 삭제하십시오. –