opencv读取视频

来源:互联网 发布:mac 扩展磁盘 找不到 编辑:程序博客网 时间:2024/06/11 21:07

注意:结构体中的Cv第一个字母都是大写的,函数的cv都是小写的。


CvCapture结构体

用来保存图像捕获所需要的信息。提供两种方式从外部捕获图像:1, 摄像头;2,通过解码视频获得的图像。
两种方式都必须从第一帧开始一帧一帧的按顺序获取,因此每获取一帧后都要保存相应的状态和参数。
比如从视频文件中获取,需要保存视频文件的文件名,相应的解码器类型,下一次如果要获取将需要解码哪一帧。这些信息都保存在Cvcapture结构中,每获取一帧后,这些信息都将被更新,获取下一帧需要将新信息传给获取的api接口。

CvCapture * cvCreateFileCapture(char *name)   打开视频文件

通过输入一个要读取的avi文件的路径,返回一个指向CvCapture结构的指针。注意文件必须为avi的格式。否则返回空指针。
可通过安装解码器,来解决返回值为空的情况,也可向将文件进行转换再操作(狸窝全能视频转换器)。

IplImage* cvQueryFrame(CvCApture* capture)    获取视频中的帧

将视频文件的下一帧加载到内存。与cvLoadImg不同的是:该函数不重新分配内存空间,即用新的数据覆盖原来的数据。

void cvReleaseCapture(CvCapture** capture) 释放内存

释放为CvCapture结构体开辟的内存空间,关闭打开的AVI文件相关的文件句柄。


#include"opencv\highgui.h"int main(){cvNamedWindow("avi");CvCapture* capture = cvCreateFileCapture("视频文件路径");IplImage* frame;while (1){frame = cvQueryFrame(capture);if (!frame)break;cvShowImage("avi", frame);char c = cvWaitKey(33);if (c == 27)break;}cvReleaseCapture(&capture);cvDestroyWindow("avi");return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米3按键失灵怎么办 l安卓手机运存不够用怎么办 红米2屏幕失灵怎么办 红米手机电池不耐用怎么办 红米手机没内存怎么办 红米2a卡顿怎么办 红米2a手机卡顿怎么办 红米5a内存不足怎么办 红米note1s内存不够怎么办 红米2手机没内存怎么办 红米note显示无服务怎么办 红米手机死屏了怎么办 红米4a信号不好怎么办 小米2a开不了机怎么办 红米4x屏幕失灵怎么办 红米4x外屏坏了怎么办 honor手机开不了机怎么办 honor黑屏开不了机怎么办 红米2开机停在mi怎么办 红米手机无法开机怎么办 小米手机帐号密码忘了怎么办 小米手机忘记小米账号密码怎么办 小米4账号密码忘了怎么办 小米2a触屏失灵怎么办 红米note5拍照不清晰怎么办 红米手机太卡怎么办 红米3x忘记密码怎么办 红米手机太卡了怎么办 红米手机太卡怎么办? 红米3老是死机怎么办 红米3s经常死机怎么办 红米4a进水了怎么办 魅族耳机声音小怎么办 魅蓝note6声音小怎么办 魅蓝3s锁定怎么办 红米1密码忘了怎么办 小米手环升级失败怎么办 红米4忘记密码怎么办 红米1代忘记密码怎么办 红米3s忘记密码怎么办 小米3卡槽卡住了怎么办