/*! * */ static void vIdle() { if (capture) { //capture image vCapturer.grab(); vCapturer.retrieve( inImg); undImg.create(inImg.size(),CV_8UC3); //transform color that by default is BGR to RGB because windows systems do not allow reading //BGR images with opengl properly // cv::cvtColor(inImg,inImg,CV_BGR2RGB); //remove distorion in image cv::undistort(inImg,undImg, camParams.getCamMatrix(), camParams.getDistor()); //detect markers mDetector.detect(undImg,markers, camParams.getCamMatrix(),Mat(),msiz->dval[0]); //resize the image to the size of the GL window cv::resize(undImg,resImg,glSize); } glutPostRedisplay(); }
/*! * */ static void vIdle() { if (capture) { //capture image vCapturer >> inImg; assert(inImg.empty()==false); undImg.create(inImg.size(),CV_8UC3); //by default, opencv works in BGR, so we must convert to RGB because OpenGL in windows prefer // cv::cvtColor(inImg,inImg,CV_BGR2RGB); //remove distortion in image cv::undistort(inImg,undImg, camParams.getCamMatrix(),camParams.getDistor()); //detect markers mDetector.detect(undImg,markers,camParams.getCamMatrix(),Mat(),msiz->dval[0]); //Detection of the board board.second=bDetector.detect(markers, boardConfig,board.first, camParams,msiz->dval[0]); //check the speed by calculating the mean speed of all iterations //resize the image to the size of the GL window cv::resize(undImg, resImg, glSize); } glutPostRedisplay(); }