该项目的结果将显示一个包含图片的窗口。但是它只是显示一个控制台窗口,并显示消息
"press to close this window 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
}
和我的main():
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文件。发生了什么?
最佳答案
如果使用imshow(),则还需要waitKey(),否则将不会显示任何内容。 (它不仅等待键之类的东西,整个窗口消息泵都隐藏在其中,因此,没有它就不会发声)
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();
}
关于qt - 在Qt Creator中无法使用OpenCV显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19046870/