三.使用OpenCv从摄像头获取视频和从文件播放视频

获取视频这个功能貌似要安装相应的解码器。


播放视频文件(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;
}


网上的一个流程图:

三.使用OpenCv从摄像头获取视频和从文件播放视频_第1张图片

最后注意:

cvWaitKey

显示图片是cvWaitKey函数表示延迟也就是等待时间,这里表示显示视频的帧率,也就是播放视频的快慢。返回值为字符ASCII值,表示用户按下某键做相应的处理。


如果视频播放不成功,请查看下面的注意事项

1、视频文件路径一定要正确,且路径分隔符为“\\”(Windows系统中)

2、确保正确安装解码器

3AVI格式的文件,但也会有不能播放的,比如可能采用的编码不同,avi格式有以下四种

1H.264/MPEG-4AVC VideoFormat(*.avi)是MPEG4.一种视频格式的扩展。具有更高的压缩率。

2AVI Audio-Video.lnterleaved(*.avi)是将与语言同步组成在一起的格式。

3Lossless.uncompressed.AVI*.avi)是主要用于用户视频编辑。

4AVIwieh DVcodec(*avi)是主要用于用户视频编辑格式,也是比较老的格式。

OpenCV所能支持的格式为第二种AVI Audio-Video.lnterleaved,所以需要用软件装换下格式,比如“格式工厂”

 4、读取摄像头时,要确保安装了与摄像头相关的驱动程序



你可能感兴趣的:(视频,opencv,树莓派,摄像头)