现在的位置: 首页 > 综合 > 正文

OpenCV程序运行错误(4)——运行时错误

2012年11月17日 ⁄ 综合 ⁄ 共 529字 ⁄ 字号 评论关闭

在调试一个从网上弄来的源码时发现几个功能不能通过,于是想办法解决,在各种尝试与思考后,终于有了结果。

源码是从网站http://apps.hi.baidu.com/share/detail/7881311
弄下来的,调试的时候问题为:在从摄像头读取视频流并保存的时候出现运行时错误,程序立刻崩溃。一开始在保存的时候弹出选择编码器的选项,而选择任何一个编码器都会出现程序崩溃(现在我知道这是运行时错误),但是如果是读取的视频文件并选择编码器保存则不会出错(我自己写的程序,从视频中读取图像并处理,最后保存成视频)。经过思考后我发现是因为摄像头读进来的图像大小为640×480,而程序创建视频写入流的帧大小为352×288,反正是图像大小不匹配了,最后导致了运行时的错误。如下图:

image

思考了一下,出现这种运行时错误很可能是内存分配的时候或把一个不符合所分配的内存大小的结构装入了内存。但是我认为寻找出这类错误在调试上的应该还有别的方法如异常检测(刚看C++是看到了异常检测方法,我想OpenCV这么牛的库肯定有自己的异常检测代码,只是我不知道),不过以后如果掌握了这个方法还是不要完全依靠这种代码调试上的“技术”上的手段,有时候自己静下来多想一想,会有意想不到的收获啊。

抱歉!评论已关闭.