OpenCV 未处理的异常错误

Posted

技术标签:

【中文标题】OpenCV 未处理的异常错误【英文标题】:Unhandled exception error with OpenCV 【发布时间】:2016-11-21 23:38:07 【问题描述】:

我正在尝试运行一个使用 OpenCV 库的程序。该程序已成功编译,但当我尝试运行它时,出现以下错误:

ConvNetUtil.exe 中 0x00007FFA62F6A74A (igdrcl64.dll) 处未处理的异常:0xC0000005:访问冲突读取位置 0x0000000000000994。

我在调试和发布模式下都收到此错误。

我的代码很简单:

Mat nImage;
cv::resize(img, nImage, _sizes[i]);
vector<PyRect> v;

我正在尝试调整在前几行中从磁盘正确读取的 mat 图像的大小。

我使用的是 OpenCV 版本 3。谢谢!

【问题讨论】:

你检查img是否读取成功(img.empy()为假)? _sizes[i] 是否有效(非零)?你的 PyRect 是什么? img 被成功读取,因为行和列是正确的并且 img.empty() 是错误的。 _sizes[i] 是 size(w,h) 的向量,在这种情况下 _size[0] 有 w=450 和 h=431。程序在调整大小行中崩溃。以前的代码可以工作,但现在我重新编译它不是。我没有混合用于调试和发布的 dll 文件,我有用于发布的 opencv_world310.lib 文件和用于调试的 opencv_world310d.lib。任何帮助将不胜感激 igdrcl64.dll 属于 Intel HD Graphic Driver。我不确切知道 ConvNetUtil,但你能重新安装图形驱动程序并重试吗? ConvNetUtil 是我使用 Caffe 深度学习框架制作的一个程序。我已经在 windows 上成功编译了 caffe,并在调试和发布模式下链接了生成的 caffe.lib 和 caffed.lib。我使用的是nvidia gpu,所以我不知道为什么使用intel HD 的dll。我也在 Visual Studio 13 上,我安装了 cuda 7.0 版和 OpenCV 3.1 版。 您可以将这些行分离到另一个简单的应用程序中,看看它是否有效。 【参考方案1】:

您可以通过执行以下步骤来解决此错误;

Uninstall Intel Graphics Driver.
Restart
Remove the following files:

On 64-bit version of Windows OS:
C:\Windows\System32\igdbcl64.dll
C:\Windows\System32\igdfcl64.dll
C:\Windows\System32\igdrcl64.dll
C:\Windows\SysWOW64\igdbcl32.dll
C:\Windows\SysWOW64\igdfcl32.dll
C:\Windows\SysWOW64\igdrcl32.dll
On 32-bit version of Windows OS:
C:\Windows\System32\igdbcl32.dll
C:\Windows\System32\igdfcl32.dll
C:\Windows\System32\igdrcl32.dll

【讨论】:

伙计,在经历了数小时的挫败、诅咒和烦恼之后,你在这里只是给我带来了微笑!爱你【参考方案2】:

我今天遇到了类似的问题。我通过卸载 Intel 图形驱动程序解决了这个问题,并在未选中 WITH_OPENGL 标志的情况下重建了 OpenCV 库。

My CMake setting

【讨论】:

以上是关于OpenCV 未处理的异常错误的主要内容,如果未能解决你的问题,请参考以下文章

opencv3.1dnn 未处理异常

使用 Visual C++ 2008 时如何解决未处理的异常错误?

异常未处理:在 openCV 中的 cvtColor()

未处理的异常访问冲突错误

未处理的拒绝(错误):调用恢复异常

对象识别 OpenCV 中未处理的异常