Beispiel #1
0
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;   
}