2

很抱歉重复一个常见的问题。现在是一个星期,我试图在我的 32 位 Windows 7 中使用 Qt 5.0.2 或 Microsoft VC++ express 版本设置 openCV,但没有成功。现在为 QT :-它是 QT 5.0.2 MinGW 。- 它运行未成功使用 opencv 的程序。

现在,我的 .pro 文件的 opencv 行是这样的:

INCLUDEPATH += "C:\opencv\build\include"
LIBS += "C:\opencv\bin\bin\libopencv_core243.dll"
LIBS += "C:\opencv\bin\bin\libopencv_highgui243.dll"

这是因为下面的代码会导致错误“找不到 core.hpp”:

LIBS += -LC:\\opencv\\build\\x86\\vc10\\lib\
libopencv_core243 \
libopencv_highgui243 \

现在它的 opencv 函数自动完成功能运行,如果你写:

cv::Mat im = cv::imread("D:\\Tulips.jpg");

没有错误。但是,如果在此之后你写:

cv::imshow("im",im);

它使用异常代码关闭程序:c0000005 它甚至不属于异常处理程序的“捕获”。

奇怪的是 VC++ express 也做同样的事情。我应该提一下,我自己为 MinGW 编译了 opencv,并且构建还可以,因为它可以与 Code::Blocks 一起使用。我在 VC++ 10 中使用了预构建的 opencv,但这也不起作用。请帮助我!非常感谢!

4

2 回答 2

1

检查im.data是否不为空。因为 c0000005 是访问冲突,这意味着您正在使用一些无效的指针,所以显示更多代码或更好的解决方案是使用调试器并逐步检查您的代码。

于 2013-06-26T10:04:14.390 回答
0

我终于找到答案了!!这一切都离不开防火墙。我的防火墙阻止了进程,opencv 无法访问内存。当我使用 cvLoadImage() 时,它有效,但 cv::imread() 没有。我已经为视觉 studio 添加了一个例外,但似乎这还不够。现在我的防火墙已关闭,最后一切正常 :) :)

于 2013-06-30T10:22:27.700 回答