获取视频这个功能貌似要安装相应的解码器。
播放视频文件(avi):
#include "cv.h"
#include "highgui.h"
int main()
{
cvNamedWindow("AVI", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateFileCapture("1.avi");
//从文件中获取视频,从摄像头中就用cvCreateCameraCapture(0)
IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)
{
break;
}
cvShowImage("AVI", frame);
char c = cvWaitKey(33);//33也可以用来控制帧率
if(c == 27)
{
break;//注意:27代表ESC键
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("AVI");
return 0;
}
最后注意:
cvWaitKey
显示图片是cvWaitKey函数表示延迟也就是等待时间,这里表示显示视频的帧率,也就是播放视频的快慢。返回值为字符ASCII值,表示用户按下某键做相应的处理。
如果视频播放不成功,请查看下面的注意事项:
1、视频文件路径一定要正确,且路径分隔符为“\\”(Windows系统中)
2、确保正确安装解码器
3、AVI格式的文件,但也会有不能播放的,比如可能采用的编码不同,avi格式有以下四种
1)H.264/MPEG-4AVC VideoFormat(*.avi)是MPEG4.一种视频格式的扩展。具有更高的压缩率。
2)AVI —Audio-Video.lnterleaved(*.avi)是将与语言同步组成在一起的格式。
3)Lossless.uncompressed.AVI(*.avi)是主要用于用户视频编辑。
4)AVI:wieh DVcodec(*avi)是主要用于用户视频编辑格式,也是比较老的格式。
OpenCV所能支持的格式为第二种AVI —Audio-Video.lnterleaved,所以需要用软件装换下格式,比如“格式工厂”
4、读取摄像头时,要确保安装了与摄像头相关的驱动程序