我刚刚安装了OpenCV2.4.2并使用CMake创建了一个OpenCV项目.我没有得到任何编译错误.我有几个处理图像的功能,我有2个应用程序:
1-处理视频中的数据
2-处理模拟数据.
除了从视频中提取数据之外,两个应用程序都是相同的.
问题:处理视频的应用程序崩溃了
program.exe访问冲突读取位置0x049f08c0中0x75d8a048处的未处理异常.
在阅读框架时,它会在代码的这一部分崩溃:
cv::VideoCapture _video;
while(1)
{
// grab the frame
_video >> frame; <-------------CRASHES HERE
processFrame(frame);
}
Run Code Online (Sandbox Code Playgroud)
所以我猜cv::VideoCapture在OpenCV 2.4.2中可能存在类的问题.如何检测问题并解决问题?
编辑
使用摄像机我设法捕获错误消息:
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
Run Code Online (Sandbox Code Playgroud)
您是否检查捕获是否确实打开了文件/相机?
if(_video.isOpened()) { // check if capture succeeded
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
默认情况下并非支持所有编解码器。这取决于您在下面用于打开视频的库。(这可能是 ffmpeg 或 Quicktime)。
您也可以自己捕获异常,以防万一以后出现问题
try {
_video >> frame;
} catch (cv::Exception) {
cout << "An exception has accurred" << endl;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3301 次 |
| 最近记录: |