关于opencv video_reader.cpp的使用说明

来源:互联网 发布:矩阵分解评分预测 编辑:程序博客网 时间:2024/06/07 08:40

How to solve OpenCV Error "function not implemented (called functionality is disabled for current build or platform) when using VideoWriter_GPU?


如果要使用这个sample 需要用CMAKE开启 with OPENGL  以及 with NVCUVID

CMAKE的过程可以参考http://blog.csdn.net/yeyang911/article/details/20203325这篇博文


#include <iostream>#include <string>#include <vector>#include <algorithm>#include <numeric>#include <opencv2/core/core.hpp>#include <opencv2/core/opengl_interop.hpp>#include <opencv2/gpu/gpu.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/contrib/contrib.hpp>using namespace cv;  using namespace gpu; #include<iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ std::string fname="1.avi"; string mm= cv::getBuildInformation();  cout<<mm<<endl; cv::namedWindow("CPU", cv::WINDOW_NORMAL); cv::namedWindow("GPU", cv::WINDOW_OPENGL);gpu::setGlDevice(); cv::Mat frame; cv::VideoCapture reader(fname); cv::gpu::GpuMat d_frame; cv::gpu::VideoReader_GPU d_reader(fname); d_reader.dumpFormat(std::cout); cv::TickMeter tm; std::vector<double> cpu_times; std::vector<double> gpu_times; for (;;) { tm.reset(); tm.start(); if (!reader.read(frame)) break; tm.stop(); cpu_times.push_back(tm.getTimeMilli()); tm.reset(); tm.start(); if (!d_reader.read(d_frame)) break;tm.stop(); gpu_times.push_back(tm.getTimeMilli()); cv::imshow("CPU", frame); cv::imshow("GPU", d_frame); if (cv::waitKey(3) > 0) break; } if (!cpu_times.empty() && !gpu_times.empty()) { std::cout << std::endl << "Results:" << std::endl; std::sort(cpu_times.begin(), cpu_times.end()); std::sort(gpu_times.begin(), gpu_times.end()); double cpu_avg = std::accumulate(cpu_times.begin(), cpu_times.end(), 0.0) / cpu_times.size(); double gpu_avg = std::accumulate(gpu_times.begin(), gpu_times.end(), 0.0) / gpu_times.size(); std::cout << "CPU : Avg : " << cpu_avg << " ms FPS : " << 1000.0 / cpu_avg << std::endl; std::cout << "GPU : Avg : " << gpu_avg << " ms FPS : " << 1000.0 / gpu_avg << std::endl; }cvDestroyAllWindows();system("pause");return 0;}




0 0
原创粉丝点击