我正处于这样的情况:我需要根据图像对应关系找到两个/多个摄像机之间的相对摄像头姿势(因此摄像机不在同一点).为了解决这个问题,我尝试了与
here(下面的代码)所述相同的方法.
cv::Mat calibration_1 = ...; cv::Mat calibration_2 = ...; cv::Mat calibration_target = calibration_1; calibration_target.at<float>(0,2) = 0.5f * frame_width; // principal point calibration_target.at<float>(1,2) = 0.5f * frame_height; // principal point auto fundamental_matrix = cv::findFundamentalMat(left_matches,right_matches,CV_RANSAC); fundamental_matrix.convertTo(fundamental_matrix,CV_32F); cv::Mat essential_matrix = calibration_2.t() * fundamental_matrix * calibration_1; cv::SVD svd(essential_matrix); cv::Matx33f w(0,-1,1,1); cv::Matx33f w_inv(0,1); cv::Mat rotation_between_cameras = svd.u * cv::Mat(w) * svd.vt; //HZ 9.19
但在我的大多数情况下,我得到了极其奇怪的结果.所以我的下一个想法是使用一个完整的捆绑调整器(应该做我正在寻找的东西?!).目前我唯一的重要依赖是OpenCV,他们只有一个未记录的捆绑调整实现.
所以问题是:
>是否有捆绑调整器没有依赖关系并使用允许商业使用的许可证?
>还有其他简单的方法可以找到外在词吗?
>与摄像机距离差异很大的物体是否有问题? (重视差)
提前致谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。