视频捕获:帧始终为空 - opencv

时间:2014-06-18 11:25:44

标签: c++ macos opencv video

我正在使用openCV版本2.4.9,以及Mac OSX。 我已编写此代码用于在桌面上加载和显示视频。但它似乎永远不会起作用。我总是把输出称为“帧空”。因此,它不会抱怨使用VideoCapture读取视频。它无法捕获任何帧,因此“帧”始终为EMPTY。知道问题可能是什么? 注意:我已经尝试了两种方法来捕获一个帧 - 注释为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;
}

1 个答案:

答案 0 :(得分:0)

让它成功。

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

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