test_opencv.cpp
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 |