无法在Qt Creator中使用OpenCV显示图像

时间:2013-09-27 09:06:17

标签: qt opencv

项目的结果将显示一个包含图片的窗口。但它只显示一个带有消息的控制台窗口

  

“按此关闭此窗口qt”

并且不再显示任何内容。我使用MSCV2010版本运行。

我现在能做什么?

这是我的.pro:

QT       += core

QT       -= gui

TARGET = OpenCV
CONFIG   += console
CONFIG   -= app_bundle
#CONFIG   -= qt

TEMPLATE = app


SOURCES += main.cpp

INCLUDEPATH += C:/opencv/build/include

CONFIG(debug,debug|release){
LIBS += C:/opencv/build/x86/vc10/lib/opencv_core231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_highgui231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_imgproc231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_features2d231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_calib3d231.lib
}

CONFIG(release,debug|release){
LIBS += C:/opencv/build/x86/vc10/lib/opencv_core231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_highgui231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_imgproc231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_features2d231.lib
LIBS += C:/opencv/build/x86/vc10/lib/opencv_calib3d231.lib
}

和我的主要():

    int main(int argc, char* argv[])
{
    QCoreApplication a(argc, argv);
    Mat image=imread("C:/Desert.jpg");
    imshow("image",image);

    return a.exec();
}

=======================================

最后,我发现了我的问题。

首先,我在“OpenCV-build-desktop-Qt_4_8_1_for_Desktop _- MSVC2010 _Qt_SDK__Release \ release”中运行我项目的可执行文件。我发现,有些DLL文件丢失了。我将它们复制到System32文件夹,它运行成功!呀!

实际上,我将这些dll的路径放入系统环境中。但它仍然表明它找不到DLL文件。发生了什么事?

1 个答案:

答案 0 :(得分:2)

如果你使用imshow(),你也需要waitKey(),否则什么都不会显示。 (它不仅等待键等,整个窗口消息泵都隐藏在那里,所以,没有那个没有blitting)

int main(int argc, char* argv[])
{
    QCoreApplication a(argc, argv);
    Mat image=imread("C:/Desert.jpg");
    imshow("image",image);
    waitKey(0); // wait forever until a key was pressed

    return a.exec();
}