Bonjour à tous,
Alors voilà, je fais du traitement d'images en c++, et j'ai besoin de chronométrer le temps, afin de stopper le programme si la détection n'a pas abouti.
A chaque chargement d'une image à traiter, j'appelle cette première fonction d'initialisation pour récupérer le temps de départ t_start :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // square_detect.h int t_start, t_type_start;
Avec les 10 premières images, ça marche, et lorsque j'atteins une certaine image (la 15eme), le compteur t_start se remet à 0 entre l'initialisation et ce bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 square_detect.cpp // Initialisation: void square_detect:: init_detection() { t_start = clock(); cout << "CLOCK_START = " << t_start << "\n"; // affiche 136 922 cout << "CLOCKS_PER_SEC = " << CLOCKS_PER_SEC << "\n"; // affiche 1000 }
J'ai placé un cout << "CLOCK_START = " << t_start << "\n"; à divers endroits du programme, et il affiche 0 très rapidement !! Pourtant je ne l'initialise qu'au début avec clock() et ensuite je n'y touche plus !! Conflit d'adresses vous pensez ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if((int)((clock()-t_start)/CLOCKS_PER_SEC) > 60) { cout << "TEMPS ECOULE 1\n"; cout << "CLOCK = " << (int)clock() << "\n"; // 138 212 cout << "CLOCK_START = " << t_start << "\n"; // AFFICHE 0 (POURQUOI ???, je ne l'ai pas réinitialisé !!!) cout << "CLOCK - CLOCK_START= " << (int)(clock()-t_start) << "\n"; // affiche 138 216 cout << "TEMPS = " << (int)((clock()-t_start)/CLOCKS_PER_SEC) << " secondes\n"; // affiche 138 secondes goto STOP; // du coup mon programme s'arrête au bout de 2 secondes ! }
Je suis donc formel : J'AI UNE VARIABLE QUI SE REMET A ZERO TOUTE SEULE !!!!!
![]()
Partager