【问题标题】:Video Capture : Frame always empty - opencv视频捕获:帧总是空的 - opencv
【发布时间】:2014-06-18 11:25:44
【问题描述】:

我正在使用 openCV 2.4.9 版和 Mac OSX。 我已经编写了这段代码来在我的桌面上加载和显示视频。但它似乎永远不会起作用。我总是将输出显示为“框架为空”。因此它不会抱怨使用 VideoCapture 读取视频。它无法捕获任何帧,因此“帧”始终为空。知道问题可能是什么吗? 注意:我已经尝试了两种捕获帧的方法 - 注释为 try 1 和 try2。

int main(int argc, const char * argv[])
{
    Mat frame;
    VideoCapture capture_ir("/Users/shreyatandon/Desktop/resize_ir.avi");


    if ( !capture_ir.isOpened() )  // if not success, exit program
    {
        cout << "Cannot open the video file" << endl;
        return -1;
    }

    for (;;){
       // capture_ir.read(frame); //try1
          capture_ir>>frame;       //try2
        if(frame.empty()){
            std::cerr<<"frame is empty"<<std::endl;
            break;
        }
        imshow("", frame);

        waitKey(10);

            break;
    }

    return 0;
}

【问题讨论】:

  • 我知道在 Windows 中你的文件路径不起作用,它们需要是 \\ 而不是 /。我不知道 Mac 是不是这样
  • 如果路径错误,它会给我输出“无法打开文件”。不过还是谢谢你!它是 / for mac。

标签: c++ macos opencv video


【解决方案1】:

刚刚成功。

Mat current_frame;
VideoCapture video("video.avi");
while(true)
{
    video.read(current_frame);
    imshow("Image",current_frame);
}

如果您在使用 avi 格式时遇到问题,请查看指向 ffmpeg 库及其依赖项的链接。我尝试使用自制软件从头开始安装它,它可以正常工作。干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2016-04-04
    • 2012-05-13
    相关资源
    最近更新 更多