【问题标题】:OpenCV with Qt: The program has unexpectedly finished带有 Qt 的 OpenCV:程序意外完成
【发布时间】:2013-08-09 16:27:15
【问题描述】:

我正在尝试在 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\Tools\MinGW\bin;G:\Qt\5.0.2\mingw47_32\bin

可能是什么问题?

【问题讨论】:

    标签: c++ qt opencv qt-creator


    【解决方案1】:

    如果可能,我建议您使用 OpenCV 2.x API。错误处理更好。

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

    如果图片为空,则说明路径错误。

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

    【讨论】:

    • imread 也出现同样的错误。奇怪的是,当我从调试文件夹运行 exe 时,图像是可见的,但当我从 Qt Creator 中运行它时却不可见
    • 你确定不是 dll 加载问题吗?它是在发布和调试中失败还是只有其中之一? barbato.us/2010/09/20/using-opencv-within-qtcreator-in-windows这篇博文提到需要visual c++ express包来调试运行opencv库。
    • 我的系统上安装了完整的 Visual Studio。当我从发布或调试目录运行 exe 时,会显示图像,但当我尝试从 IDE 中运行它时不会显示
    【解决方案2】:

    你可能需要改变

    -lopencv_core244 \
    -lopencv_highgui244 \
    -lopencv_imgproc244
    

    -lopencv_core244d \
    -lopencv_highgui244d \
    -lopencv_imgproc244d
    
    • 在每个库的末尾注明“d”(如果您要在调试中构建)

    【讨论】:

      【解决方案3】:

      你的问题解决了吗?

      您是否尝试过添加 system("PAUSE");返回后 a.exec(); ?

      只是一些额外的说明:

      也试试

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

      看看你是否能找到错误

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

      最后看看能不能用路径E:\lena.jpg

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多