qbo_camera包 stereovision.cpp 代码分析

25 篇文章 0 订阅
8 篇文章 0 订阅
StereoVision::calibrateStereo调用
 
for(i=0;success1<n_boards;i++)
        {
            bool result=false;
            lr = i % 2;
            vector<vector<Point2f> >& pts = points[lr]; //pts apunta a los puntos de la camara con la que se trabaja (left-right)

            //Adquirimos las dos imagenes a la vez (una vez cada 2 pasadas)
            if(!lr)
                clickToCapture(color);  //guarda en color la captura simultanea de las 2 camaras. color es un vector con las dos imagenes

            //FIND CHESSBOARDS AND CORNERS THEREIN:
            result=findChessboardCorners(color[lr],patternSize,temp,CV_CALIB_CB_ADAPTIVE_THRESH+CV_CALIB_CB_FILTER_QUADS);

            if( result )    //Si el resultado de la busqueda de esquinas es bueno
            {
                // Get subpixel accuracy on those corners
                cvtColor(color[lr], img, CV_BGR2GRAY);
                cornerSubPix(img,temp,Size(11,11),Size(-1,-1),TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01));

                // Draw it
                drawChessboardCorners(color[lr],patternSize,Mat_<Point2f>(temp),result);
                if(lr)
                    imshow( "Right camera capture result", color[lr] );
                else
                    imshow( "Left camera capture result", color[lr] );

                pts.push_back(temp);
                fallo[lr]=false;
            }
            else {
                fallo[lr]=true;
            }

clickToCapture先从left/right的callback中更新的right和left mat给拷贝过来一份到color mat。
然后调用findChessboardCorners 查找棋盘图像的角点。输入图像需要为8bit彩色图像或灰度图像。
<pre name="code" class="cpp">cvtColor是图像颜色空间转换工具。这里将mat从OPENCV的BGR空间转换为灰度空间。



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值