我刚刚安装了 OpenCV2.4.2 并使用 CMake 创建了一个 OpenCV 项目。我没有收到任何编译错误。我有几个处理图像的函数,并且有 2 个应用程序:
1-处理视频数据
2- 处理模拟数据。
除了从视频中提取数据之外,这两个应用程序是相同的。
PROBLEM:处理视频的应用程序崩溃
program.exe 中 0x75d8a048 处出现未处理的异常 访问冲突
读取位置0x049f08c0。
当读取帧时,它在这部分代码中崩溃:
cv::VideoCapture _video;
while(1)
{
// grab the frame
_video >> frame; <-------------CRASHES HERE
processFrame(frame);
}
所以我想可能有问题cv::VideoCapture
OpenCV 2.4.2 中的类。我怎样才能发现问题并解决它?
EDIT
我用摄像机捕捉到了错误消息:
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
您是否检查捕获是否确实打开了文件/相机?
if(_video.isOpened()) { // check if capture succeeded
// do stuff
}
默认情况下并非支持所有编解码器。这取决于您在下面用于打开视频的库。 (这可能是 ffmpeg 或 Quicktime)。
您也可以自己捕获异常,以防万一以后出现问题
try {
_video >> frame;
} catch (cv::Exception) {
cout << "An exception has accurred" << endl;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)