OpenCV装甲板位姿解算
装甲板位姿解算
感谢TJ-SuperPower2025赛季视觉组培训资料的开源
描述旋转
绕y轴旋转

绕x轴旋转

绕z轴旋转

先绕y轴,再绕x轴
y-x-z (45°,-30°,0)

3轴都发生旋转
y-x-z (15°,-50°,-25°)

欧拉角:yaw - pitch - roll
按顺序记录绕三个坐标轴旋转的角度

y轴 -> 偏航角yaw : 先绕上下轴旋转 改变前进方向
x轴 -> 俯仰角pitch : 再绕左右轴旋转 改变俯仰程度
z轴 -> 横滚角roll : 最后绕前进/后退轴旋转 改变倾斜程度
装甲板在三维空间中的信息
距离:远近
朝向:向左/向右
位置:用三维向量表示
旋转:用欧拉角表示

解算位置:cv::solvePnP
cv::solvePnP(objectPoints, // 物品局部坐标系的n个点
imagePoints, // 图像上的n个点
cameraMatrix, // 与相机有关的参数
distCoeffs,
rvec, //存储位置
tvec,
useExtrinsicGuess = false,
flags = SOVLEPNP_ITERATIVE);
objectPoints:一个 vector<cv::Point3f>,至少需要4个点
imagePoints:一个 vector<cv::Point2f>,包含了对应的图像上的二维点的坐标,与 objectPoints 中的点一一对应。
cameraMatrix:相机的内参数矩阵,类型为 cv::Mat,一般为 3x3 的浮点数矩阵
distCoeffs:相机的畸变系数,类型为 cv::Mat,一般为 4x1 或 5x1 的浮点数矩阵
tvec 平移向量3x1向量:装甲板坐标系的原点在相机坐标系的位置
tevc第三个值:相机坐标系中相机与目标点之间的距离,这个值是相机坐标系中z轴的坐标值,即目标点相对于相机的深度
tvec所有值平方和的开平方:相机与目标点之间的总体距离(实际距离)
rvec 旋转向量 3x1向量:绕一个空间中的向量,进行一次性的旋转
一种旋转的表示方法

方向:使用右手定则决定旋转方向
长度:旋转的弧度
求欧拉角


总结


浙公网安备 33010602011771号