带Qt的OpenCV:该程序意外完成

时间:2013-08-09 16:27:15

标签: c++ qt opencv qt-creator

我正在尝试在Windows 8 64位上使用Qt Creator 2.7.0(Qt 5.0.2)配置OpenCV。 执行我的程序时,出现以下错误:

  

该程序意外结束。

这是我的main.cpp

#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();
}

我的.pro文件是

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = untitled1
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

unix:!mac {
    message("* Using settings for Unix/Linux.")
    INCLUDEPATH += /usr/local/include/opencv

    LIBS += -L/usr/local/lib/ \
        -lopencv_core \
        -lopencv_highgui \
        -lopencv_imgproc
}

## OpenCV settings for Mac OS X
macx {
    message("* Using settings for Mac OS X.")
    INCLUDEPATH += /usr/local/include/opencv

    LIBS += -L/usr/local/lib/ \
        -lopencv_core \
        -lopencv_highgui \
        -lopencv_imgproc
}

## OpenCV settings for Windows and OpenCV
win32 {
    message("* Using settings for Windows.")
    INCLUDEPATH += "C:\\OpenCV\\opencv\\build\\include" \
                   "C:\\OpenCV\\opencv\\build\\include\\opencv" \
                   "C:\\OpenCV\\opencv\\build\\include\\opencv2"

    LIBS += -L"C:\\OpenCV\\opencv\\build\\x64\\mingw\\lib" \
        -lopencv_core244 \
        -lopencv_highgui244 \
        -lopencv_imgproc244
}

环境变量是:

  

OPENCV_DIR:C:\ OpenCV \ opencv \ build \ x64 \ mingw路径:   G:\ 5.0.2 \工具\ MinGW的\ BIN; G:\ Qt的\ 5.0.2 \ mingw47_32 \ BIN

可能是什么问题?

3 个答案:

答案 0 :(得分:2)

我建议你尽可能使用OpenCV 2.x API。错误处理更好。

这将是cv :: Mat image = cv :: imread(“E:\ lena.jpg”);

如果图像为空,则表示您的路径错误。

另外,请确保opencv dll位于可执行文件的路径中(core,highgui和imgproc)。

答案 1 :(得分:1)

您可能需要更改

-lopencv_core244 \
-lopencv_highgui244 \
-lopencv_imgproc244

-lopencv_core244d \
-lopencv_highgui244d \
-lopencv_imgproc244d
  • 注意每个lib末尾的“d”(如果你要构建调试版)

答案 2 :(得分:0)

你解决了这个问题吗?

您是否尝试过添加系统(“暂停”);返回a.exec()之后; ?

只是一些额外的注释:

也可以尝试

try 
{
...
}
catch (Exception e)
{
...
}

查看是否可以找到错误

第三,检查lena.jpg的文件权限

最后,看看你是否可以使用路径E:\ lena.jpg