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 :
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 :
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 ??
Je suis donc formel : J'AI UNE VARIABLE QUI SE REMET A ZERO TOUTE SEULE !!!!!
:arf:
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:
// square_detect.h
int t_start, t_type_start;Code:
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
}Code:
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 !!!!!
:arf:
Aucun commentaire:
Enregistrer un commentaire