2 u014162389 u014162389 于 2016.03.31 11:06 提问

关于opencv标定角点的世界坐标求法的困惑

关于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:方法二中坐标求法实在不理解,可以帮忙解释一下吗?

1个回答

houchenqi2668
houchenqi2668   2016.05.26 13:10

问题3,是的。我用opencv试过不同的程序,结果也是不同的

Csdn user default icon
上传中...
上传图片
插入图片