1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| void MaClasse::captureLoop()
{
ostringstream score_str;
Cercle c;
// Capture la frame on la charge dans une matrice Mat
capture >> frame;
if( frame.empty() )
break;
flip( frame, frame_copy, 1 );
if(compteur>50 || compteur<1)
{
compteur=0;
position_pt = giveRandomposition();
createRandomCreature(creature);
creature->setPosition(position_pt, ((double)NBCASES/(double)nb_cases));
}
compteur++;
// Detection de visage
if( detect_faces )
{
// Appel de la fonction pour détecter et afficher les visages
c = detect_and_draw_faces(2); // c'est dans cette fonction qui ma fait planter mon programme !!!!!!!
if(collisionCercle(creature->getPtGauche(), creature->getPtDroite(), c ))
{
creature->updateScore(score);
//score++;
cout << "Collision - Score : " << score << endl;
position_pt = giveRandomposition();
createRandomCreature(creature);
creature->setPosition(position_pt, ((double)NBCASES/(double)nb_cases));
}
}
// On affiche une grille
if( show_grid )
draw_grid();
creature->draw(frame_copy);
score_str.str("");
score_str << "Score : " << score;
putText( frame_copy, score_str.str(), Point(6,12), CV_FONT_HERSHEY_SIMPLEX, 0.40, Scalar(0, 255, 0) );
QImage test = Mat2QImage(frame_copy); // convertit Mat en QImage
this->setPixmap(QPixmap::fromImage(test));
this->update();
} |
Partager