gpt4 book ai didi

openCV 3.0 recoverPose 错误结果

转载 作者:太空宇宙 更新时间:2023-11-03 21:45:53 29 4
gpt4 key购买 nike

有没有人可以使用 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 尺寸的图像和另一张刚向左旋转 90 度的 1836x1836 图像。我已经使用计算机程序旋转了它,所以它正好旋转了 90 度。

我期望结果:

xAngle: 0

yAngle: 0

zAngle: 90 (or -90 depending on Z direction)

不幸的是我的结果是:

xAngle: 90

yAngle: 0.113659

zAngle: 180

有人可以帮我吗?

最佳答案

Essential 矩阵不能用来描述纯旋转。如果您知道您的图像仅通过旋转而没有平移相关,那么您必须估计它们之间的单应性(也称为投影变换)。

关于openCV 3.0 recoverPose 错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28812451/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com