【问题标题】:How to play a video file from my disk using OpenCV.? [closed]如何使用 OpenCV 从我的磁盘播放视频文件。? [关闭]
【发布时间】:2011-08-08 15:22:46
【问题描述】:

请帮助我完成上述任务。我是 openCV 的新手。我的系统中安装了 OpenCV 2.2,并使用 VC++ 2010 Express 作为 IDE。我的笔记本电脑没有内置网络摄像头... 只是我学会了如何加载图像。我非常渴望从我的磁盘加载一个视频文件(最好是 mp4,flv 格式)并希望使用 openCV 播放它。

【问题讨论】:

  • 如果您可以编辑此问题以表明您的任何尝试,请随时标记它以供版主注意以进行审核。

标签: visual-c++ opencv


【解决方案1】:

使用OpenCV的C接口(在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 为您尝试完成的任务带来了一些额外信息。

【讨论】:

【解决方案2】:

(嗯……您似乎并没有尝试自己做某事,但无论如何)

来自docs

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    //Mat edges;
    namedWindow("frames",1);
    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        //ignore below sample, since you only want to play
        //cvtColor(frame, edges, CV_BGR2GRAY);
        //GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        //Canny(edges, edges, 0, 30, 3);
        //imshow("edges", edges);
        imshow("frames", frame);
        if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}

这是 old way 使用 opencv 1.x api。

【讨论】:

  • OP 想要从视频文件而不是相机中加载帧
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2011-02-05
  • 2021-11-02
相关资源
最近更新 更多