有沒有人可以使用openCV 3.0 recoverPose函數,並取得良好效果? 我有:openCV 3.0 recoverPose錯誤的結果
cv::Mat r;
cv::Mat t;
cv::Mat E = cv::findEssentialMat(features1, features2);
cv::recoverPose(E, features1, features1, r, t);
float xAngle = radToDeg(atan2f(r.at<float>(2, 1), r.at<float>(2, 2)));
float yAngle = radToDeg(atan2f(-r.at<float>(2, 0), sqrtf(r.at<float>(2, 1) * r.at<float>(2, 1) + r.at<float>(2, 2) * r.at<float>(2, 2))));
float zAngle = radToDeg(atan2f(r.at<float>(1, 0), r.at<float>(0, 0)));
由於輸入我用一個形象1836x1836尺寸和其他圖像1836x1836這是剛剛旋轉90度到左邊。我已經使用計算機程序旋轉它,所以它正好旋轉90度。
我期待的結果是:
xAngle: 0
yAngle: 0
zAngle: 90 (or -90 depending on Z direction)
不幸的是我的結果是:
xAngle: 90
yAngle: 0.113659
zAngle: 180
誰能幫助我呢?
在恢復中,您傳遞的是功能1而不是功能2。 – Ruturaj 2016-10-29 00:41:20