c – 在相机之间寻找外在的东西

c – 在相机之间寻找外在的东西,第1张

概述我正处于这样的情况:我需要根据图像对应关系找到两个/多个摄像机之间的相对摄像头姿势(因此摄像机不在同一点).为了解决这个问题,我尝试了与 here(下面的代码)所述相同的方法. cv::Mat calibration_1 = ...;cv::Mat calibration_2 = ...;cv::Mat calibration_target = calibration_1;calibrati 我正处于这样的情况:我需要根据图像对应关系找到两个/多个摄像机之间的相对摄像头姿势(因此摄像机不在同一点).为了解决这个问题,我尝试了与 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 pointcalibration_target.at<float>(1,2) = 0.5f * frame_height; // principal pointauto 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,他们只有一个未记录的捆绑调整实现.

所以问题是:

>是否有捆绑调整器没有依赖关系并使用允许商业使用的许可证?
>还有其他简单的方法可以找到外在词吗?
>与摄像机距离差异很大的物体是否有问题? (重视差)

提前致谢

解决方法 我也在研究同样的问题并面临更为棘手的问题.
以下是一些建议 –

>分解前修改基本矩阵:
在分解之前修改基本矩阵[U W Vt] = SVD(E),并且新E’= diag(s,s,0)其中s = W(0,0)W(1,1)/ 2
> 2阶段基本矩阵估计:
使用RANSAC内点重新计算基本矩阵

这些步骤应使旋转估计更容易受到噪声的影响.

总结

以上是内存溢出为你收集整理的c – 在相机之间寻找外在的东西全部内容,希望文章能够帮你解决c – 在相机之间寻找外在的东西所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1226393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存