关于opencv标定角点的世界坐标求法的困惑,目前发现有三种求法:
1.\opencv\sources\samples\cpp中calibration.cpp求法
for( int i = 0; i < boardSize.height; i++ )
for( int j = 0; j < boardSize.width; j++ )
corners.push_back(Point3f(float(j*squareSize),float(i*squareSize), 0));
2.在《学习OpenCV》这本书11章例11-1求法
CV_MAT_ELEM(*object_points,float,i,0) = j/board_w;
CV_MAT_ELEM(*object_points,float,i,1) = j%board_w;
CV_MAT_ELEM(*object_points,float,i,2) = 0.0f;
3.博客http://blog.csdn.net/zhouyelihua/article/details/38421377#comments求法
CV_MAT_ELEM(*cam_object_points, float, i, 0) = (j/cam_board_w)*cam_Dx;
CV_MAT_ELEM(*cam_object_points, float, i, 1) = (j % cam_board_w)*cam_Dy;
CV_MAT_ELEM(*cam_object_points, float, i, 2) = 0.0f;
问题1:到底哪种求法是对的?
问题2:为什么不同图像对应的角点的世界坐标是一样的?
问题3:方法一中squareSize是指棋盘格每个小格子的宽度/高度吗?
问题4:方法二中坐标求法实在不理解,可以帮忙解释一下吗?