test_opencv.cpp

Andrey Morozov, 2011-02-07 03:10 pm

Download (1.1 kB)

 
1
#include <iostream>
2
#include <string>
3
#include <sstream>
4
#include <opencv2/highgui/highgui.hpp>
5
#include <time.h>
6
#include <omp.h>
7
#include <vector>
8
#include <omp.h>
9
#include <stdlib.h>
10
11
int main(int argc, char * argv[])
12
{
13
        const int w = 1920;
14
        const int h = 1200;
15
16
        const int size = 6;
17
        std::vector<cv::VideoWriter *> writer;
18
        for (int i = 0; i < size; i++)
19
        {
20
                std::ostringstream s;
21
                s << "file_" << i << ".avi";
22
                writer.push_back(new cv::VideoWriter(s.str(), CV_FOURCC('X','V','I','D'), 25.0f, cv::Size(w, h)));
23
        }
24
25
        clock_t s,f;
26
27
        int t = 4;
28
        if (argc > 1) t = atoi(argv[1]);
29
        omp_set_num_threads(t);
30
31
        s = clock();
32
33
        int i;
34
35
        for (int j = 0; j < 128; j++)
36
        {
37
                printf(".");
38
                cv::Mat frame(h, w, CV_8UC3, cv::Scalar(0));
39
                cv::circle(frame, cv::Point(w / 2, h / 2), h / 2 - j, cv::Scalar(255, 255, 255));
40
41
                #pragma omp parallel for private(i)
42
                for (i = 0; i < size; i++)
43
                {
44
                        *(writer[i]) << frame;                        
45
                }
46
        }
47
48
        f = clock();
49
50
        for (int i = 0; i < size; i++)
51
                writer[i]->~VideoWriter();
52
53
        std::cout << "Time : " << double( f - s) / CLOCKS_PER_SEC << "\n";
54
55
        return 0;
56
}
57