首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV -播放AVI文件

OpenCV -播放AVI文件
EN

Stack Overflow用户
提问于 2013-10-26 20:56:31
回答 2查看 2.3K关注 0票数 0

我试图用ubuntu中的opencv c++播放avi文件,但没有得到任何输出。我使用的代码是我在网上找到的一个用于播放avi视频的标准代码,但我看不到任何输出。是的,视频和我的src代码文件夹在同一个目录中。我看到的唯一一件事是,在while循环的第一次迭代中,frame是空的,因此中断。但我不知道为什么会发生这种情况,因为视频在vlc上工作。我真的很感谢这里的一些帮助,因为我已经被困在过去的4-5个小时。#include "cv.h“//将其包含在使用的主OpenCV函数中。#include "highgui.h“//包含它以使用GUI函数。

代码语言:javascript
复制
int main(int argc, char** argv)
{
cvNamedWindow("Example3", CV_WINDOW_AUTOSIZE);

//CvCapture* capture = cvCreateFileCapture("20051210-w50s.flv");
CvCapture* capture = cvCreateFileCapture("tree.avi");
/* if(!capture)
    {
        std::cout <<"Video Not Opened\n";
        return -1;
    }*/
IplImage* frame = NULL;

while(1) {

    frame = cvQueryFrame(capture);
    //std::cout << "Inside loop\n";
    if (!frame)
        break;
    cvShowImage("Example3", frame);
    char c = cvWaitKey(33);
    if (c == 27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example3");
std::cout << "Hello!";
return 0;
}
EN

回答 2

Stack Overflow用户

发布于 2014-07-02 17:32:40

您是在调试模式还是在发布模式下运行?在openCV 2.4.4中,只有一个opencv_ffmpeg244.dll ( release .dll),但没有一个用于调试。尝试切换到发布模式。

票数 0
EN

Stack Overflow用户

发布于 2014-07-02 17:56:53

删除代码行:

代码语言:javascript
复制
char c = cvWaitKey(33);
if (c == 27) break;

而不是这些,只需添加:

代码语言:javascript
复制
cvWaitKey(33);

也许这可能是python代码,它对我来说工作得很好: help.Here:

代码语言:javascript
复制
import cv
if __name__ == '__main__':
  capture = cv.CreateFileCapture('Wildlife.avi')
  loop = True
  while(loop):
    frame = cv.QueryFrame(capture)
    if (frame == None):
            break;
    cv.ShowImage('Wild Life', frame)
    char = cv.WaitKey(33)
    if (char != -1):
        if (ord(char) == 27):
            loop = False

或者this可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19606988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档