int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Mat image = imread("/home/milk/number/img_1.jpg",0);//Mat(hight1,width1,CV_8UC1);//.clone();
imshow("suoxiao1",image);
waitKey(0);
return a.exec();
}
这是主函数,如果把 QApplication a(argc, argv);及其相关注释调,单独运行opencv的程序没有问题,如果加上qt的窗口控件,就会异常退出,经过排查就只有在运行imshow函数的时候才会异常退出,pro文件配置如下,问题会是什么呢?
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
CONFIG += c++11 console
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
LIBS += -L/usr/local/lib \
-lopencv_core \
-lopencv_highgui \
-lopencv_imgproc \
-lopencv_videoio \
-lopencv_imgcodecs \
-lopencv_dnn \
-lopencv_ml \
-lopencv_objdetect \
-lopencv_shape \
-lopencv_stitching \
-lopencv_superres \
-lopencv_videostab \
-lopencv_calib3d \
-lopencv_features2d \
-lopencv_video \
-lopencv_photo \
-lopencv_flann
INCLUDEPATH += /usr/local/include
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui