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 53 54 55 56 57
|
int main(int argc, char** argv)
{
vector <string> names;
int Nb = 68;
string png = ".png";
string pic = "pic";
string total;
square_detect sq;
char chh[255];
for(int i=0; i<Nb; i++)
{
sprintf(chh, "%d", i+1);
total = pic + chh + png;
names.push_back(total);
}
namedWindow("square_detection", 1 );
vector<vector<Point> > squares;
for(int i=16; i<Nb ; i++ )
{
cvDestroyAllWindows();
Mat image = imread(names.at(i), 1);
if( image.empty() )
{
cout << "Couldn't load " << names[i] << endl;
continue;
}
IplImage* iplImage = &image.operator IplImage();
// declare a destination IplImage object with correct size, depth and channels
IplImage *imageResize = cvCreateImage (cvSize (500 , 400), iplImage->depth, iplImage->nChannels);
//use cvResize to resize source to a destination image
cvResize(iplImage, imageResize);
Mat imgMatResize(imageResize);
sq.findSquares(imgMatResize, squares, 0); // A chaque nouvelle image capturée, je rentre dans cette fonction, qui appelle d'autres fonctions de filtrage de la même classe (square_detect). La variable globale t_start, initialisé à 0 en tête de cette fonction, se remettait à 0 toute seule dans cette même fonction, autrement dit pour la même image.
sq.drawSquares(imgMatResize, squares);
int c = waitKey();
} |
Partager