visual-c++ - 如何使用 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/

相关文章:

c++ - OpenCV 线检测

c - Visual C++ 将 C 文件作为 C 处理

c# - 从 C# 转换为 C++

c - memcpy() 和 memset() 的奇怪行为

xcode - cocoa 应用程序中的 OpenCV Blob 跟踪

android - 具有Android Studio的OpenCV

opencv - 在MacOS Mojave上使用Python3.9安装OpenCV时出错

visual-c++ - 从CStdioFile获取错误消息::Open()?

windows - Microsoft Visual Studio 10.0\VC\include\io.h 提供了什么?

c++ - 复制数据的奇怪错误