使用OpenCV函数读入、播放视频文件并获取视频相应属性
来源:互联网 发布:mac如何打包文件 编辑:程序博客网 时间:2024/05/18 06:04
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
cvNamedWindow("ShowAvi", CV_WINDOW_AUTOSIZE);
string strAviName = "F:\\aaa.avi";
CvCapture *capture = cvCreateFileCapture(strAviName.c_str());
if (capture == NULL)
{
return 0;
}
IplImage *frame = NULL;
int iNum=0, iFrameH=0, iFrameW=0, iFps=0, iNumFrames=0;
char ch[10];
string strImageName;
while (1)
{
frame = cvQueryFrame(capture);
if (!frame)
{
break;
}
cvShowImage("ShowAvi", frame);
iNum ++;
if (iNum == 1)
{
iFrameH = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
iFrameW = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
iFps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
iNumFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);
}
itoa(iNum, ch, 10);
strImageName = ch;
strImageName += ".jpg";
//cvSaveImage(strImageName.c_str(), frame);//将每帧图像保存下来
char c = cvWaitKey(33);
if (c == 27)
{
break;
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("ShowAvi");
cout<<"一共的帧数为:"<<iNum<<endl;
cout<<"宽度、高度、每秒录入的帧数(帧率)、总帧数:"<<iFrameW<<" "<<iFrameH<<" "<<iFps<<" "<<iNumFrames<<endl;
return 0;
}
1、cvCreateFileCapture:通过参数设置确定要读入的视频文件,返回一个指向CvCapture结构的指针。这个结构包括了所有关于读入视频文件的信息,其中包含状态信息。在调用这个函数后,返回指针所指向的CvCapture结构被初始化到所对应视频文件的开头。
2、cvQueryFrame:参数为CvCapture结构的指针。用来将下一帧视频文件载入内存(实际是填充或更新CvCapture结构中)。返回一个对应当前帧的指针。与cvLoadImage不同的是,cvLoadeImage为图像分配内存空间,而cvQueryFrame使用已经在cvCapture结构中分配好的内存。这样的话,就没有必要通过cvReleaseImage()对这个返回的图像指针进行释放,当CvCapture结构被释放后,每一帧图像所对应的内存空间即会被释放。
3、cvGetCaptureProperty:查询CvCapture对象的各种属性。
4、cvCreateTrackbar:创建一个滚动条,可以方便地从视频的一帧跳到另外一帧。
注:要想能够正确的读入视频文件,需要有相应的视频编码解码的DLL文件!!
- 使用OpenCV函数读入、播放视频文件并获取视频相应属性
- opencv读入视频并播放的类
- 使用OpenCV捕获视频,并保存为视频文件
- 【OpenCV】视频读入、播放控制和写入
- ffmpeg和opencv 播放视频文件并显示
- opencv2:读入摄像机视频并写入AVI视频文件
- matlab读入视频序列并播放 代码
- 获取raw下的视频文件并播放
- Opencv获取视频文件参数的属性标识符
- 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
- 使用opencv播放视频
- Opencv读取并播放视频
- 【视频处理工程】6、使用Lav Filter手动建立Filter Graph并播放视频文件
- Opencv中的Bug(实现读入一个彩色视频文件并以灰度格式输出这个视频文件,学习opencv例2-10)
- OpenCV 播放视频文件
- OpenCV笔记(二)实现获取视频并控制视频的播放速度
- linux下使用opencv接口函数控制视频播放进度
- 利用OpenCV读入一个彩色视频文件并以灰度格式输出
- java 强引用,弱引用,虚引用
- 查看系统端口占用情况
- 采药
- JDK 6中新增的Java Console类功能及常见问题
- ora-00600: internal error code, arguments: [kpotcgah-7], [12534], [ora-12534: TNS:operation not supp
- 使用OpenCV函数读入、播放视频文件并获取视频相应属性
- 宿主进程 [*.vshost.exe] & [*.vshost.exe.config]
- Eclipse 自动提示
- SCL验证工具
- Android group listview
- HibernateDaoSupport
- [教程] Flash Socket通信的安全策略问题 843端口
- c# 条件编译 Conditional ("DEBUG")
- mysql 创建和删除用户