只要获得 特征点的世界坐标(三维坐标)、2D坐标(像素坐标)、相机内参矩阵、相机畸变参数矩阵 以上四个参数即可以解得相机与标志物之间的外参(R旋转矩阵、T位置矩阵)

2023-05-16

有一个地方没弄明白,相机的内参不就是畸变参数么?(现在明白了,可以看这篇博文:https://blog.csdn.net/sinat_16643223/article/details/115218563)相机内参包括内参矩阵和畸变参数,

这里说标定是得到相机内参和畸变参数。

https://blog.csdn.net/qq_42394915/article/details/81082743

这里给出了标定结果的解释。

https://blog.csdn.net/artista/article/details/51125560

只要获得 特征点的世界坐标(三维坐标)、2D坐标(像素坐标)、相机内参矩阵相机畸变参数矩阵 以上四个参数即可以解得相机与标志物之间的外参(R旋转矩阵、T位置矩阵)

https://blog.csdn.net/sinat_16643223/article/details/115197899

你看我们标定后写到yaml文件的也是matrix和distortion对吧,和上面的两项是符合的。

 

刚刚发现《OpenCV4快速入门》里面有讲到pnp

 

https://blog.csdn.net/sinat_16643223/article/details/114254374

 

 

ARUCO二维码检测输入位置和旋转矩阵就是这个函数

cv::aruco::estimatePoseSingleMarkers 

普罗米修斯里面也是用的这个函数

这个函数的参数里面四个数输入参数,我个人感觉正好和上面所说的特征点的世界坐标(三维坐标)、2D坐标(像素坐标)、相机内参矩阵相机畸变参数矩阵四个参数相对应!!!!!

https://docs.opencv.org/master/d9/d6a/group__aruco.html

 

普罗米修斯里面二维码降落用到的landpad_det.cpp里面的代码,就是用的cv::aruco::estimatePoseSingleMarkers得到位置数据。

 

可以确定singMarkerCorner_19这个参数是像素坐标

第二个参数是二维码边长,对应现实中的坐标(之所以说二维码边长是特征点的世界坐标(三维坐标),因为他们应该默认二维码中心是原点,知道二维码边长就知道二维码四个顶点的坐标了!!!!!!不就是世界坐标了么!)

第三个参数是相机外餐

第四个参数是相机畸变参数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

只要获得 特征点的世界坐标(三维坐标)、2D坐标(像素坐标)、相机内参矩阵、相机畸变参数矩阵 以上四个参数即可以解得相机与标志物之间的外参(R旋转矩阵、T位置矩阵) 的相关文章

随机推荐