C++ 从摄影机到对象的距离。。纠错

C++ 从摄影机到对象的距离。。纠错,c++,opencv,camera-calibration,pose-estimation,C++,Opencv,Camera Calibration,Pose Estimation,我在估计摄像机到棋盘的距离。然而,只要我远离模式,误差就会线性增加。 这正常吗?我怎样才能纠正这个错误 我用一个简单的线性方程纠正了这个错误,它是有效的,但它并不像我所认为的那样依赖于摄像机参数,因此纠正将是稳健的: 误差=72.51+distNorme*0.0278 我使用OpenCV和相机参数按照以下步骤计算与棋盘的距离: 1-findChessboardCorners 2-PNP 3->距离由solvePnP给出的平移向量的距离 当我有更好的跟踪模式时,我也会对纠正旋转和平移错误感兴趣。在

我在估计摄像机到棋盘的距离。然而,只要我远离模式,误差就会线性增加。 这正常吗?我怎样才能纠正这个错误

我用一个简单的线性方程纠正了这个错误,它是有效的,但它并不像我所认为的那样依赖于摄像机参数,因此纠正将是稳健的: 误差=72.51+distNorme*0.0278

我使用OpenCV和相机参数按照以下步骤计算与棋盘的距离:

1-findChessboardCorners

2-PNP

3->距离由solvePnP给出的平移向量的距离


当我有更好的跟踪模式时,我也会对纠正旋转和平移错误感兴趣。在做了一些实验之后,我会写一个问题的答案。我修正了我的距离如下:

Distance_corrected = distNorme+distNorme*correction
distNorme
是到棋盘的距离,它是由
solvePnP
OpenCV函数给出的平移向量的范数

更正

correction=pixel_size/focal_mm/2 = 2/focal_pixel
结果较好,虽然误差仍呈线性增加,但随着距离的增加,误差不是很强


我仍然在寻找关于
纠正
错误的参考或文档。我需要更多的细节

在做了一些实验之后,我会给这个问题写一个答案。我修正了我的距离如下:

Distance_corrected = distNorme+distNorme*correction
distNorme
是到棋盘的距离,它是由
solvePnP
OpenCV函数给出的平移向量的范数

更正

correction=pixel_size/focal_mm/2 = 2/focal_pixel
结果较好,虽然误差仍呈线性增加,但随着距离的增加,误差不是很强

我仍然在寻找关于
纠正
错误的参考或文档。我需要更多的细节