很抱歉重复一个常见问题。 现在是一周,我试图在我的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"
这是因为像bellow这样的代码导致错误“找不到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 它甚至不会落入异常处理程序的“catch”中。
奇怪的是,VC ++ express也在做同样的事情。 我应该提一下,我自己为MinGW编译了opencv,并且构建是好的,因为它适用于Code :: Blocks。 我在我的VC ++ 10中使用了预构建的opencv,但这也不起作用。 请帮助我!非常感谢!
答案 0 :(得分:1)
检查 im.data 是否为空。因为c0000005是访问冲突,这意味着您使用了一些无效指针,因此显示更多代码或更好的解决方案是使用调试器并逐步执行代码。
答案 1 :(得分:0)
我终于找到了答案!! 这完全是防火墙。 我的防火墙阻止了进程,opencv无法访问内存。 当我使用cvLoadImage()时,它工作,但cv :: imread()没有。 我为视觉卫星添加了一个例外,但似乎还不够。现在我的防火墙已经关闭,最后一切都是OKKK :):)