项目的结果将显示一个包含图片的窗口。但它只显示一个带有消息的控制台窗口
“按此关闭此窗口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文件。发生了什么事?
答案 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();
}