7

I just installed OpenCV2.4.2 and created an OpenCV project using CMake. I don't get any compilation errors. I have several functions for processing images and I have 2 applications:

1- Processes data from a video

2- Processes simulated data.

Both applications are identical except from the data extraction from the video.

PROBLEM: The application processing video crashes with

Unhandled exception at 0x75d8a048 in program.exe Access violation reading location 0x049f08c0.

It crashes in this part of the code, when reading frames:

cv::VideoCapture _video;
while(1) 
{       
        // grab the frame
        _video >> frame;  <-------------CRASHES HERE
                processFrame(frame);
}

So I guess there could be a problem with cv::VideoCapture class in OpenCV 2.4.2. How can I detect the problem and solve it?

EDIT

With video camera I managed to catch the error message:

OpenCV Error: Assertion failed (m.dims >= 2) in unknown function, file ..\..\..\
src\opencv\modules\core\src\matrix.cpp, line 268
OpenCV Error: Assertion failed (0 <= _rowRange.start && _rowRange.start <= _rowR
ange.end && _rowRange.end <= m.rows) in unknown function, file ..\..\..\src\open
cv\modules\core\src\matrix.cpp, line 283
4

1 回答 1

4

您是否正在检查捕获是否实际打开了文件/相机?

    if(_video.isOpened()) {  // check if capture succeeded
      // do stuff
    }

默认情况下,并非所有编解码器都受支持。这取决于您在下面用来打开视频的库。(这可能是 ffmpeg 或 quicktime)。

您也可以自己捕获异常,以防将来出现问题

try {
    _video >> frame;
} catch (cv::Exception) {
    cout << "An exception has accurred" << endl;
};
于 2012-09-10T13:44:13.030 回答