<分区>
请帮助我完成上述任务。我是 openCV 的新手。我的系统中安装了 OpenCV 2.2,并使用 VC++ 2010 Express 作为 IDE。我的笔记本电脑没有内置网络摄像头... 刚刚我学会了如何加载图像。我非常渴望从我的磁盘加载一个视频文件(最好是 mp4 , flv 格式)并希望使用 openCV 播放它。
标签 visual-c++ opencv
<分区>
请帮助我完成上述任务。我是 openCV 的新手。我的系统中安装了 OpenCV 2.2,并使用 VC++ 2010 Express 作为 IDE。我的笔记本电脑没有内置网络摄像头... 刚刚我学会了如何加载图像。我非常渴望从我的磁盘加载一个视频文件(最好是 mp4 , flv 格式)并希望使用 openCV 播放它。
最佳答案
使用 OpenCV 的 C 接口(interface)(我在 Windows 机器上效果更好),加载视频文件的函数是 cvCaptureFromAVI()
。之后,您需要使用传统循环通过cvQueryFrame()
检索帧,然后通过cvShowImage()
将它们显示在使用cvNamedWindow() 创建的窗口上
。
CvCapture *capture = cvCaptureFromAVI("video.avi");
if(!capture)
{
printf("!!! cvCaptureFromAVI failed (file not found?)\n");
return -1;
}
int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
printf("* FPS: %d\n", fps);
cvNamedWindow("display_video", CV_WINDOW_AUTOSIZE);
IplImage* frame = NULL;
char key = 0;
while (key != 'q')
{
frame = cvQueryFrame(capture);
if (!frame)
{
printf("!!! cvQueryFrame failed: no frame\n");
break;
}
cvShowImage("display_video", frame);
key = cvWaitKey(1000 / fps);
}
cvReleaseCapture(&capture);
cvDestroyWindow("display_video");
This blog post为您要完成的任务带来一些额外信息。
关于visual-c++ - 如何使用 OpenCV 从我的磁盘播放视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984447/