OpenCV 视频处理框架
来源:互联网 发布:mysql dateformat用法 编辑:程序博客网 时间:2024/05/17 03:28
OpenCV 本身集成了 FFmpeg,因此对于视频是有解码和编码功能的。虽然其效率在本人看来还不能跟未被封装的FFmpeg相提并论,然用其来对视频进行解码得到图像,然后对图像进行处理并将得到的图像重新压缩成视频是非常方便的,下面将介绍把视频解码成图像并进行帧差法等操作后往回压缩成视频的框架搭建,值得注意的是在OpenCV2.1版本图像压缩成视频是有BUG的,最好还是用新的版本来进行学习。除此之外,要让opencv支持压缩,还需要装相对应的编码器,详情可见。
#include <opencv2/opencv.hpp> #include "opencv2/highgui/highgui.hpp" #include <opencv2/core/core.hpp>using namespace cv;CvVideoWriter * pVW = NULL;//写回文件对象void MotionDetect(IplImage *frame1, IplImage *frame2)//两帧图像处理函数{//在此加入图像处理代码}void main(){IplImage *frame1 = NULL, *frame2 = NULL;//frame1为新的图像,frame2为frame1的前一张图像CvCapture *capture = NULL;capture = cvCaptureFromAVI("2.avi");//打开视频frame1 = cvQueryFrame(capture);//从摄像头或者文件中抓取并返回一帧frame2 = cvCreateImage(cvGetSize(frame1), 8, 3);cvCopy(frame1, frame2);frame1 = cvQueryFrame(capture);pVW = cvCreateVideoWriter("output.avi", CV_FOURCC('D', 'I', 'V', 'X'), 30, cvSize(frame1->width, frame1->height), 1);//以mpeg4数据格式进行视频编码,帧率为30帧/swhile (frame1){MotionDetect(frame1, frame2);//移动侦测cvCopy(frame1, frame2);cvShowImage("", frame2);//显示处理完图像cvWaitKey(5);cvWriteFrame(pVW, frame2);//将处理完图像数据写入视频frame1 = cvQueryFrame(capture);//接着从视频中拷入图像}cvReleaseImage(&frame2);cvReleaseVideoWriter(&pVW);}
1 0
- OpenCV 视频处理框架
- opencv 视频处理框架,面向对象,简单实用,可扩展
- opencv视频处理范例
- OpenCv视频处理函数
- opencv视频处理整理
- OpenCv视频处理函数
- openCv视频处理
- openCV中的视频处理。。。
- OpenCV视频处理
- 用OpenCV处理视频
- OpenCV视频的处理
- opencv 视频处理
- Opencv视频处理笔记
- opencv:视频处理
- OpenCv视频处理函数
- Opencv 视频处理
- 音视频处理框架
- opencv处理视频颠倒问题
- C++ 流式套接字 SOCT_STREAM 通信
- 黑马程序员_常用API_String、Stringbuffer、StringBuilder、其它类
- 选择排序
- php教程统计静态html页面浏览访问次数代码
- ZOJ 3324 Machine
- OpenCV 视频处理框架
- hdu2544 最短路 dijkstra的使用优先队列优化的比较
- 网络拓扑
- xyoj 6042:让人头疼的“双十一”
- Nginx模块fastcgi_cache的几个注意点
- 小镇网(最小生成树)
- php统计网站/html页面浏览访问次数程序
- https
- 【双向链表】我就水一下