0

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

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

我正在使用 Visual Studio 2010OpenCV 2.4.5Qt5

CvCapture* cap= cvCaptureFromFile(file);
frame = cvQueryFrame(capture);
4

1 回答 1

0

这可能有多种原因,链接错误的文件名,未找到编解码器等。尝试在打开文件之前放置调试 printf 以查看文件名是否正确,如果它不为 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;
 }
于 2013-05-15T15:03:03.147 回答