使用opencv进行多路视频的播放
来源:互联网 发布:一对一网络辅导 编辑:程序博客网 时间:2024/06/05 04:55
在监控领域,我们时常需要对多路视频进行实时的播放,这到底是怎么实现的呢?使用opencv的朋友可能会想:我可以先定义一个VideoCapture的数组,然后在一个for循环中,逐一读取各路视频并显示,但是这显然不是同步的,设想一下,如果有32路视频需要同时播放,而一般摄像机的帧率为25fps或30fps,那么按上述方法进行播放,第一路与第三十二路视频的延迟会有1秒多,如果我们需要在其间做一些图像处理,那么延迟将会更大。
有过多线程编程或多核编程经验的朋友会觉得这个问题很好解决,这就是一个简单的并行问题。本章节提供使用openMP多核编程的方法实现多路视频的播放:
<pre name="code" class="cpp">#include "stdafx.h"#include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "omp.h"using namespace cv;using namespace std;#define CAM_NUM 4int _tmain(int argc, _TCHAR* argv[]){VideoCapture cap[CAM_NUM];Mat img;string str = "scene_1//frame_%4d.jpg";int i;#pragma omp parallel for for (i=0;i<CAM_NUM;i++){cap[i].open(str);}int width = cap[0].get(CV_CAP_PROP_FRAME_WIDTH);int height = cap[0].get(CV_CAP_PROP_FRAME_HEIGHT);int min_width = width/2;int min_height = height/2;Mat imageShow(height,width,CV_8UC3);int left,top;Mat temp;bool runflag = true;while (1){#pragma omp parallel for private(img,temp,left,top)for (i=0;i<CAM_NUM;i++){cap[i] >> img;resize(img,temp,Size(min_width,min_height));left = i/2 *min_width;top = i%2 *min_height;temp.copyTo(imageShow(Rect(left,top,min_width,min_height)));}if (!runflag){break;}namedWindow("Image");imshow("Image", imageShow);waitKey(33);}return 0;}
一张截图如下:
是不是很有意思!你可以尝试修改一下视频通道的数量,如果仅是播放,一个核播放4路视频完全没有问题,一个四核的计算机可以尝试16路视频的同步播放。
本文中使用了多核编程的思想,因为现在多核计算机很普遍了,这也必将是以后的趋势,想更多的了解openMP与opencv的结合请继续关注本人博客!!会有大波新内容介绍给大家的!
链接:http://m.blog.csdn.net/blog/dengtaocs/38065955
0 0
- 使用opencv进行多路视频的播放
- 使用opencv进行多路视频的播放
- 使用opencv播放视频
- 利用ffmpeg和opencv进行视频的解码播放
- 利用ffmpeg和opencv进行视频的解码播放
- 利用ffmpeg和opencv进行视频的解码播放
- 利用ffmpeg和opencv进行视频的解码播放
- 利用ffmpeg和opencv进行视频的解码播放
- 使用ijkplayer进行视频播放
- 使用VideoView进行视频播放
- Opencv播放视频的问题
- OpenCV 播放视频的QT
- MFC Timer定时器的使用+opencv播放视频
- Opencv使用滑块控制视频的播放
- 播放一个AVI视频,相当于使用opencv创建自己的视频播放器
- 使用OpenCV进行视频读写
- 使用openCV进行视频拼接
- 使用OpenCV进行视频读写
- iOS企业证书发布app流程
- 黑马程序员 String类
- 资源篇
- eclipse无法启动的各种解决方法
- Windows下DB2v9.1的实例
- 使用opencv进行多路视频的播放
- 关于iOS原生条形码扫描,你需要注意的两三事
- 码农你会搜“Win10 破解版”吗?
- poj 3270 Cow Sorting 【置换群】【求 把一个序列变成升序 所需代价】
- Linux-sort,uniq,cut,wc命令详解
- 为x86 64体系结构添加系统调用
- 校园交通导游系统
- 【UFLDL】[2]主成分分析与白化
- Android更改工程名称