0

我正在尝试运行(在 Qt、C++ 中)以下使用 OpenCV 的代码:

。轮廓:

QT       += core
QT       -= gui

TARGET = testOpenCV2
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += C:\opencv\build\include
LIBS += C:\opencv\release\bin\libopencv_core300.dll
LIBS += C:\opencv\release\bin\libopencv_highgui300.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs300.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc300.dll

main.cpp 文件:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main(int argc, char *argv[])
{
    cv::Mat image = cv::imread("pic.jpg", CV_LOAD_IMAGE_COLOR);
    cv::namedWindow("My Image", WINDOW_AUTOSIZE);
    cv::imshow("My Image", image);
    cv::waitKey(0);

    return 0;
}

但我收到以下消息:

退出代码 -1073741515

有时我会收到以下消息:

无法获取下级句柄:参数不正确。

什么都没有发生。

任何人都可以帮助我吗?

我是 Qt 的新手,我不知道发生了什么。

4

1 回答 1

0

您根本没有使用 Qt(除非您尝试链接 QtCore)。要运行 QtApplication,您至少需要调用 QCoreApplication。

#include <QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // Some code here
    // QMainWindow w;
    // w.show();

    return a.exec();
}

创建一个非 Qt 应用程序,您可以将您的配置文件更改为(完全省略 QT):

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

INCLUDEPATH += C:\opencv\build\include
LIBS += C:\opencv\release\bin\libopencv_core300.dll
LIBS += C:\opencv\release\bin\libopencv_highgui300.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs300.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc300.dll

这样你也不需要''QCoreApplication''

于 2015-10-28T06:53:29.587 回答