- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用solvepnp()
来计算旋转和平移矩阵。但是从获得的旋转矩阵计算出的欧拉角给出了非常不稳定的值。为了找到问题,我为我的标记设置了一组2D投影点,并将solvepnp()
的其他参数保持不变。
例如:
2D点[219.67473, 242.78395;
363.4151, 238.61298;
503.04855, 234.56117;
501.70917, 628.16742;
500.58069, 959.78564;
383.1756, 972.02679;
262.8746, 984.56982;
243.17044, 646.22925]
根据solvepnp()的输出旋转矩阵计算出的欧拉角theta(x)为-26.4877
接下来,我仅将第一个点的x值(即219.67473)增加0.1,以检查theta(x)欧拉角的变化(保持其余点和其他参数恒定)并再次运行solvepnp()。很小的变化,我的值从-19度降低到-18度(对于x坐标= 223.074)然后突然跳到27度(对于x坐标= 223.174到226.974)然后下降到1.3度(对于x坐标= 227.074)。
我完全无法理解这种行为。有人可以解释一下吗?
我从旋转矩阵计算的欧拉角使用this procedure。
最佳答案
尝试使用Rodrigues()在旋转矩阵和旋转 vector 之间进行转换,以确保一切都正确无误。非RANSAC版本对异常值非常敏感,这些异常值会在参数中产生巨大的误差,从而使解决方案产生偏差。使用solvePnP的RANSAC version可使它对异常值更稳定。例如,对一个坐标点添加太多,最终将使其离群,并且此后不会影响解决方案。
如果一切失败,请编写一系列单元测试:在3D中创建一个人工的点集(可能是非平面的),首先应用一个简单的平移,在第二个变量中,仅应用旋转,在第三个测试中,两个都应用。使用相机矩阵进行投影,然后将2D,3D点和投影矩阵插入代码中以查找姿势。如果结果偏离平移和旋转的倒数,则您应用到这些点的位置会寻找将参数馈入PnP的错误。
关于ios - 了解solvepnp的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22343578/
我正在尝试借助 OpenCV 的 solvePNP() 获取相机的姿势。 运行程序后出现以下错误: OpenCV Error: Assertion failed (npoints >= 0 && np
我有一个非常简单的任务:获取平面三角形的欧拉角。图案看起来像 this 因此,算法: 1) 从网络摄像头获取图像 -- 完成 2) 转换为灰阶、滤镜等——完成 3) 获取所有连接组件的质量中心,并过滤
有人可以帮助我计算相机的 Y 轴旋转吗?我使用 SolvePnP 来获取 rvec。从这个 rvec 我想知道我的相机绕着它自己的 Y 轴旋转了多少。 PointF[] ImagePointsCam
我正在使用运动结构进行多 View 几何重建。到目前为止,我有以下内容 两张图片作为初始输入相机参数和畸变系数初始输入图像的工作校正流水线创建视差图通过遍历视差图并将值作为 z(x 和 y 是视差图中
我正在使用函数 solvePnP 通过视觉标记来估计我的机器人的姿势。有时我在两个连续的帧中得到错误的结果。在文件 problem.cpp 中,您可以看到其中一个结果。 点集对应于两个连续帧中的相同标
我在使用OpenCV中的cv2.solvePnP函数时遇到问题。此功能用于获取棋盘的姿势估计。在以下代码之后,我得到一个错误: for fname in glob.glob('Images/Calib
我对 OpenCV 中 solvePnP 函数的使用有一点困惑。 我有相机内部参数的矩阵,我已经确定了图像中的一些关键点,我正在尝试估计校准的外部参数。 solvePnP 的文档说: cv2.solv
我目前正在尝试通过获取两个摄像头都可以看到的跟踪模式的位置来获取两个 Kinect v2 的相对位置。不幸的是,我似乎无法获得图案原点的正确位置。 这是我当前获取图案相对于相机位置的代码: std::
我正在像这样使用 solvePnP.. import cv2 import numpy as np # Read Image im = cv2.imread("headPose.jpg"); size
我无法理解 Perspective-n-Point问题。几个问题: s 有什么用?为什么我们需要图像点的比例因子? K[R|T] 是一个“坐标变换矩阵”,它将同质世界点 p_w 移动到 2D 的坐标空
我有一个类似于 this 的不对称圆点图案.我使用 opencv solvePnP 函数根据 a) 已知的 3D 图案点来估计图案的姿态; b) 二维图像中检测到的图案点 我发现在某些情况下(当图案正
我正在尝试在一张照片上构建静态增强现实场景,其中平面和图像上的共面点之间有 4 个定义的对应关系。 这是一个分步流程: 用户使用设备的相机添加图像。假设它包含一个以某种视角捕获的矩形。 用户定义矩形的
我正在尝试使用单应性在 Blender 3d 中校准和查找单个虚拟相机的位置和旋转。我正在使用 Blender,以便在进入更困难的现实世界之前仔细检查我的结果。 我在我的固定相机的视野中渲染了十张棋盘
这是错误: cv2.solvePnP(obj_points, image_points, mtx, dist) cv2.error: OpenCV(4.2.0) C:\projects\opencv-
是否可以将 OpenCV 的 solvePNP 与 equirectangular 图像一起使用?我有一个 equirectangular 图像,我在这个图像中有四个点(红点)和它们的像素坐标,然后我
我想获得高架摄像机的姿势(翻译:x、y、z 和旋转:世界坐标系中的 Rx、Ry、Rz)。通过用机械臂移动 ChArUco 校准板,我得到了许多物点和图像点(像这样 https://www.youtub
我正在使用棋盘来获取外部矩阵。findChessboardCorners 正确找到图像点,并且应该正确设置对象点。但是当捕捉相同的场景时,我得到了非常奇怪的结果。 我正在使用 OpenCV 2.1.0
我使用以下代码对图像进行地理配准 有输入 grid = "for example a utm grid" img_raw = cv2.imread(filename) mtx, dist = "
在过去的几周里,我尝试学习纠正图像,并且在这里的人们的帮助下,我已经设法更好地理解它。大约一周前,我设置了一个我想纠正的测试示例(查看上图)。使用函数 T = cv2.getPerspectiveTr
我有一个校准过的相机(固有矩阵和失真系数),我想知道相机位置,知道图像中的一些 3d 点及其对应点(2d 点)。 我知道 cv::solvePnP 可以帮助我,并且在阅读 this 之后和 this我
我是一名优秀的程序员,十分优秀!