如何在初始化OpenCV的VideoCapture时出现问题?

时间:2013-05-25 17:42:38

标签: c++ opencv error-handling

我想用OpenCV打开视频文件dt_passat.mpg。我使用以下代码:

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main( int argc, char** argv )
{
    VideoCapture capture("dt_passat.mpg");
    if (!capture.isOpened()) {
        std::cerr << "ERR: capture is not opened" << std::endl;
        getchar();
        return -1;
    }
}

然而,它失败了,我不知道为什么。如何通过初始化VideoCapture(未找到文件/损坏的文件/未知编解码器/等)来解决问题点?

2 个答案:

答案 0 :(得分:3)

不幸的是,OpenCV并不总是拥有最好的文档。

您可以尝试使用cvGetErrorStatus()查看内部错误代码,然后将其转换为cvErrorStr()的可读字符串。见http://opencv.willowgarage.com/documentation/c/core_utility_and_system_functions_and_macros.html#cvGetErrStatus

答案 1 :(得分:1)

opencv图像/视频/摄像头IO和gui实际上只是为了获取样本数据进出测试算法来制作一个真正的应用程序,你需要一个更强大的系统内容通用库。

然而,实际的图像处理算法质量非常好。