Я пытаюсь запустить (в 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 и не знаю, что происходит.
Вы вообще не используете 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-приложение, вы бы изменили свой pro-файл (вообще не используйте 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.
Других решений пока нет …