0

我正在处理以下代码:

主文件

#include <QCoreApplication>
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>

using namespace cv;

using namespace std;

int main(int argc, char *argv[])
{
    Mat image = imread("C:/Users/Public/Pictures/Sample Pictures/Tulips.jpg");
    namedWindow("Image");
    imshow("Image",image);
    waitKey(0);
}

测试.pro

#-------------------------------------------------
#
# Project created by QtCreator 2013-05-07T10:38:38
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = Test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
INCLUDEPATH += E:/Jasmin/Yohan/opencv/build/include
INCLUDEPATH += E:/Jasmin/Yohan/opencv/include/opencv2

LIBS += E:/Jasmin/Yohan/opencv/build/x86/mingw/lib/libopencv_calib3d240.dll.a
LIBS += E:/Jasmin/Yohan/opencv/build/x86/mingw/lib/libopencv_contrib240.dll.a
LIBS += E:/Jasmin/Yohan/opencv/build/x86/mingw/lib/libopencv_core240.dll.a
LIBS += E:/Jasmin/Yohan/opencv/build/x86/mingw/lib/libopencv_highgui240.dll.a
LIBS += E:/Jasmin/Yohan/opencv/build/x86/mingw/lib/libopencv_imgproc240.dll.a

当我运行此代码时,没有显示图像,打印以下输出

Starting E:\Jasmin\Yohan\QTProjects\build-Test-Desktop_Qt_5_0_2_MinGW_32bit-Debug\debug\Test...
E:\Jasmin\Yohan\QTProjects\build-Test-Desktop_Qt_5_0_2_MinGW_32bit-Debug\debug\Test exited with code 0

以下opencv相关的环境变量被添加到“path”系统变量中

E:\Jasmin\Yohan\opencv\build\x86\mingw\bin;E:\Jasmin\Yohan\opencv\build\x86\vc10\bin

为什么我会遇到这个问题?我的 QT creator 版本是 2.7.0

更新

这就是我的调试器必须说的:

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

0

您的代码似乎正在做它应该做的事情:waitKey(0) 等待零秒或毫秒并且程序退出。增加等待时间或将 waitKey 放入循环中..

于 2013-05-07T07:03:53.557 回答
0

使用“...\opencv\build\x86\mingw\bin”和“...\opencv\build\x86\mingw\lib”中的库

您不能使用 OpenCV-2.4.x.exe 附带的库。

正如论坛中的一些开发人员和我发现的那样。在某些系统上,无法使用“opencv 2.4.x”的预编译库。编译你自己的程序是可行的,但如果你尝试运行它们,它就会崩溃。在没有“opencv 2.4.x”的预编译库无法运行之前,您必须自己编译 opencv。

完全忽略文件夹“...\opencv\build\x86\mingw\bin”和“...\opencv\build\x86\mingw\lib”。

使用库

如何构建和使用openCV

于 2013-05-08T19:42:04.090 回答