C++ 带Qt的OpenCV:程序意外完成
我正在尝试在windows 8 64位上使用Qt Creator 2.7.0(Qt 5.0.2)配置OpenCV。 在执行程序时,出现以下错误: 程序意外地完成了 这是我的主要.cppC++ 带Qt的OpenCV:程序意外完成,c++,qt,opencv,qt-creator,C++,Qt,Opencv,Qt Creator,我正在尝试在windows 8 64位上使用Qt Creator 2.7.0(Qt 5.0.2)配置OpenCV。 在执行程序时,出现以下错误: 程序意外地完成了 这是我的主要.cpp #include "mainwindow.h" #include <QApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv
#include "mainwindow.h"
#include <QApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
IplImage *image = cvLoadImage("E:\\lena.jpg"); //If this is removed, the program runs OK
return a.exec();
}
环境变量包括:
OPENCV_目录:C:\OPENCV\OPENCV\build\x64\mingw路径:
G:\5.0.2\Tools\MinGW\bin;G:\Qt\5.0.2\mingw47\u 32\bin
有什么问题吗?如果可能,我建议您使用OpenCV 2.x API。错误处理更好 这将是cv::Mat image=cv::imread(“E:\lena.jpg”) 如果图像为空,则表示路径错误
另外,确保opencv dll位于可执行文件(core、highgui和imgproc)的路径中。您可能需要更改
-lopencv_core244 \
-lopencv_highgui244 \
-lopencv_imgproc244
到
- 注意每个库末尾的“d”(如果要在调试中生成)
- 您解决问题了吗
您是否尝试添加系统(“暂停”);在返回a.exec()之后
只是一些额外的注意事项:
也尝试
try
{
...
}
catch (Exception e)
{
...
}
看看你是否能找到错误
第三,检查lena.jpg的文件权限
最后,看看是否可以使用路径E:\lena.jpg同样的错误来处理imread。奇怪的是,当我从调试文件夹运行exe时,图像是可见的,但当我从Qt Creator中运行它时,图像是不可见的。你确定这不是dll加载问题吗?它是在发布和调试中失败,还是只在其中一个方面失败?该博客提到,需要调试VisualC++快照包来运行OpenCV库。我的系统上安装了完整的VisualStudio。当我从release或debug目录运行exe时,会显示映像,但当我尝试从IDE中运行它时不会显示映像
-lopencv_core244d \
-lopencv_highgui244d \
-lopencv_imgproc244d
try
{
...
}
catch (Exception e)
{
...
}