hugestar007
hugestar007
谢谢大佬的回复。我主要是根据这个坐标(1.82f, -3.12f, 0.0f),(14.18f, -3.12f, 0.0f),(1.82f, 9.12f, 0.0f),(14.18f, 9.12f, 0.0f) 这个标定板原点在棋盘格的左上角定义为标定板的原点。 实际上标定板坐标系自己定义就可以是吗?不管原点在左上角,或者左下角,只需尺寸单位一致就可以?
我理解是这样: 1. cv::calibrateCamera(_boards_pts_3d, _imgs_pts, image_size, camera_matrix, k, rvecsMat, tvecsMat, CV_CALIB_FIX_PRINCIPAL_POINT); 计算出图像序列中每帧的标定板-相机的外参,和相机内参。 2. 根据1的结果,cv::projectPoints(_boards_pts_cir[i], rvecsMat[i], tvecsMat[i], camera_matrix, k, imgpoints_cir);重投影计算图像域的圆心点。 3. 根据1的结果, this->refine_all(camera_intrinsic, distort, vec_extrinsics); 标定板-相机内外参进行两次优化,(区别畸变第一次2个参数,第二次是3个参数)得到优化后的标定板-相机的外参和相机内参。然后和雷达点配准,再优化得到雷达-相机的外参。 我的问题是第2步计算重投影如果用第3步先优化后的标定板-相机的外参和相机内参计算第2步会不会精度更高呢?
> > 我理解是这样: > > > > 1. cv::calibrateCamera(_boards_pts_3d, _imgs_pts, image_size, camera_matrix, > > k, rvecsMat, tvecsMat, CV_CALIB_FIX_PRINCIPAL_POINT); > > 计算出图像序列中每帧的标定板-相机的外参,和相机内参。 > > 2. 根据1的结果,cv::projectPoints(_boards_pts_cir[i], rvecsMat[i], tvecsMat[i], > > camera_matrix,...