使用opencv检索视频帧 - 未处理的异常

时间:2013-05-15 14:35:54

标签: c++ qt opencv

我正在使用cvQueryframes获取视频帧,但在avi文件的几个视频中,我得到了:

Unhandled exception at 0x715c14f0 0xC0000005: 
    Access violation reading location 0x02f509f0.

我正在使用带有OpenCV 2.4.5Qt5

的visual studio 2010
CvCapture* cap= cvCaptureFromFile(file);
frame = cvQueryFrame(capture);

1 个答案:

答案 0 :(得分:0)

这可能有多种原因,链接错误的文件名,找不到编解码器等。尝试在打开文件之前调试printf以查看文件名是否正确也检查cap是否为NULL。你可以试试这样的东西

int main(int argc, char*argv[])
{

    char *my_file = "C:\\vid_an2\\desp_me.avi";
    std::cout<<"Video File "<<my_file<<std::endl;
    cv::VideoCapture input_video;

    if(input_video.open(my_file))
    {
         std::cout<<"Video file open "<<std::endl;
    }
    else
    {
        std::cout<<"Not able to Video file open "<<std::endl;

    }
    namedWindow("My_Win",1);
    namedWindow("Segemented", 1);
    Mat cap_img;
    for(;;)
    {
         input_video >> cap_img;
         imshow("My_Win", cap_img);
          waitKey(0);
    }
   return 0;
 }