void WebcamDevice::initModels() { ////////////////////////////////////////////////// ////////// initialisation variables visage /////// ////////////////////////////////////////////////// std::cout << "initialisation de Chehra..." << std::endl; _chehra = new Chehra; std::cout << "done" << std::endl; _pointsVisage3D.push_back(cv::Point3f(-110, 0, -336)); // exterieur narine gauche sur l'image _pointsVisage3D.push_back(cv::Point3f(110, 0, -336)); // exterieur narine droite sur l'image _pointsVisage3D.push_back(cv::Point3f(0, -142, -258)); // bout du nez _pointsVisage3D.push_back(cv::Point3f(-338, 243, -70)); // exterieur oeil gauche sur l'image _pointsVisage3D.push_back(cv::Point3f(0, 0, 0)); // haut du nez, centre des yeux _pointsVisage3D.push_back(cv::Point3f(338, 243, -70)); // exterieur oeil droit sur l'image ////////////////////////////////////////////////// ////////// initialisation OpenCV ///////////////// ////////////////////////////////////////////////// cv::FileStorage fs("../rsc/intrinsicMatrix.yml", cv::FileStorage::READ); while(!fs.isOpened()) calibrateCam(&fs); fs["cameraMatrix"] >> _cameraMatrix; fs["distCoeffs"] >> _distCoeffs; _focalePlane = (_cameraMatrix.at<double>(0, 0) + _cameraMatrix.at<double>(1, 1)) / 2; // NEAR = distance focale ; si pixels carrés, fx = fy -> np //mais est généralement différent de fy donc on prend (pour l'instant) par défaut la valeur médiane fs.release(); }
int main( int argc, char *argv[]) { char buf[256]; int arg = 0; robot.setDebuging(0); robot.getVersion(buf); printf("SVR-1 version %s\n", buf); robot.setVideoMode(1); if (argc > 1) arg = atoi(argv[1]); calibrateCam(arg); return 0; }