相机标定

有多个坐标系:世界坐标系,相机坐标系,成像平面坐标系,图像像素坐标系。

比如:

void worldCoord2PixelCoord(double xw,double yw,double zw,int* xp,int* yp) //把世界坐标转换为像素坐标/*{{{*/
{
    double xc,yc,zc;
    CvMat * WorldCoord=cvCreateMat(3,1,CV_64FC1);
    cvmSet(WorldCoord,0,0,xw-l);
    cvmSet(WorldCoord,1,0,yw-d);
    cvmSet(WorldCoord,2,0,zw-h);
    CvMat * CameraCoord=cvCreateMat(3,1,CV_64FC1);
    cvMatMul(R,WorldCoord,CameraCoord);
    xc=cvmGet(CameraCoord,0,0);
    yc=cvmGet(CameraCoord,1,0);
    zc=cvmGet(CameraCoord,2,0);
    *xp=(int)(fi*yc/xc+ci);
    *yp=(int)(-fj*zc/xc+cj);
    cvReleaseMat(&WorldCoord);
    cvReleaseMat(&CameraCoord);
}/*}}}*/

posted @ 2013-11-07 23:41  tofixer  阅读(246)  评论(0编辑  收藏  举报