本文整理汇总了C++中VideoWriter::set方法的典型用法代码示例。如果您正苦于以下问题:C++ VideoWriter::set方法的具体用法?C++ VideoWriter::set怎么用?C++ VideoWriter::set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VideoWriter
的用法示例。
在下文中一共展示了VideoWriter::set方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, const char** argv){
if (CV_MAJOR_VERSION < 3) {
puts("Advise you update to OpenCV3");
}
if (argc<2) {
puts("Please specify input image path");
return 0;
}
if (argc<3) {
puts("Please specify thread num");
return 0;
}
VideoCapture captureVideo(argv[1]);
if (!captureVideo.isOpened()) {
puts("Fail to open video");
return 0;
}
// Setup video output
VideoWriter outputVideo;
if (OUTPUT_VIDEO)
outputVideo = setOutput(captureVideo);
threadNum = atoi(argv[2]);
if (SHOW_INFO)
printf("threads: %d\n", threadNum);
outputVideo.set(CV_CAP_PROP_BUFFERSIZE, 1);
double Calculate = 0, Input = 0, Output = 0;
double Total = getTickCount(), Last;
int numFrames = captureVideo.get(CV_CAP_PROP_FRAME_COUNT);
for (int fid = 0; fid<numFrames; fid += TD_MAX_SIZE) {
int sz = numFrames - fid;
if (sz > TD_MAX_SIZE) sz = TD_MAX_SIZE;
// store all thread
vector<thread> threads;
// input enough frames
Last = getTickCount();
for (int i = 0; i<threadNum; ++i)
threads.emplace_back(thread(inputVideo, argv[1], i, sz, fid));
for (int i = 0; i<threadNum; ++i)
threads[i].join();
threads.clear();
Input += getTickCount() - Last;
// proc all got frames
Last = getTickCount();
for (int i = 0; i<threadNum; ++i)
threads.emplace_back(thread(whiteBalance, i, sz));
for (int i = 0; i<threadNum; ++i)
threads[i].join();
threads.clear();
Calculate += getTickCount() - Last;
if (OUTPUT_VIDEO) {
Last = getTickCount();
for (int i = 0; i<sz; ++i) {
outputVideo << imgs[i];
imgs[i].release();
}
Output += getTickCount() - Last;
}
}
Total = getTickCount() - Total;
printf(" Total: %.3fs (include time count)\n", Total / getTickFrequency());
printf(" Input: %.3fs\n", Input / getTickFrequency());
printf(" Output: %.3fs\n", Output / getTickFrequency());
printf("Calculate: %.3fs\n", Calculate / getTickFrequency());
return 0;
}