关于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
- 关于opencv video_reader.cpp的使用说明
- OpenCV gpu模块样例注释:video_reader.cpp
- opencv:找到opencv官方的使用说明
- 关于SO_REUSEADDR的使用说明
- 关于SO_REUSEADDR的使用说明
- 关于SO_REUSEADDR的使用说明
- 关于SO_REUSEADDR的使用说明~
- 关于COMBOBOXINFO的使用说明
- 关于SafeArray的使用说明
- 关于UITABLEVIEW的使用说明
- 关于SO_REUSEADDR的使用说明
- 关于strncpy的使用说明
- 关于SafeArray的使用说明
- 关于SO_REUSEADDR的使用说明~
- 关于SO_REUSEADDR的使用说明
- 关于SO_REUSEADDR的使用说明~
- 关于SO_REUSEADDR的使用说明~
- 关于FileInputStream的使用说明
- 初学者对于android学习的看法
- 值得 Web 开发人员学习的20个 jQuery 实例教程
- 不是技术牛人,如何拿到国内IT巨头的Offer
- hibernate的简单配置实例
- 温故而知新:Oracle基础知识复习(二)
- 关于opencv video_reader.cpp的使用说明
- 数据科学之机器学习6: 分类之朴素贝叶斯
- ADO.NET
- sku的一个设计
- 黑马程序员-C语言之求三个数中的最大值的几种C语言写法
- 财付通接口乱码解决
- 易宝网上在线支付
- PullToRefresh使用详解
- GDI+ 与 GDI (平铺与拉伸)PNG背景图贴图片的方法