如何在QtCreator中连接opencv并使用Qt库

这个问题必须重复多次,但是它不起作用,有时候还是没有答案。 信息来源主要是这些
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c

这是我认为应该/可以做的事情的总和。 (现在它适用于我。)希望我从一开始就提到一切,目的是写一个非常明确的教程。

为QtCreator安装OpenCV

  1. 我已经安装了MS Visual Studio 2010 Professional。 (作为学生我有一个免费的许可证) – 我认为这不是必要的,只是一提
  2. 下载: Qt 5.0.1 for Windows 32位(MinGW 4.7,823 MB)
    2.1 安装:警告,Qt使用的所有东西(例如OpenCV)必须位于名称中不包含空格的目录中。 – 即“程序文件”是错误的。 (但是我不想让不同的程序文件直接在C上累积,所以我只创build了一个“程序”文件夹,在这个文件夹中安装了所有重要的东西)
  3. 下载: cmake-2.8.10.2-win32-x86.exe – 为所有用户安装(可以在Program Files中)
  4. 下载: OpenCV-2.4.0.exe,提取到: C:\ Programs \ opencv24 – 它会创build一个目录“opencv”; 添加另一个文件夹“opencv_bin”。 现在看起来像这样:
    C:\程序\ opencv24 \ OpenCV的*
    C:\程序\ opencv24 \ opencv_bin
  5. 设置PATH环境variables ,以便有一个到MinGW编译器的链接。 例如C:\ Programs \ Qt \ Qt5.0.1 \ Tools \ MinGW \ bin;
  6. 启动cmake-gui.exe
    6.1 源代码:设置OpenCV的默认目录; C:\程序\ opencv24 \ OpenCV的
    6.2 二进制文件:设置opencv_bin目录; C:\程序\ copencv24 \ opencv_bin
    6.3 点击configure:
    • selectMinGW Makefiles指定本地编译器 ,点击下一步
    • 字段C用于gcc.exe; C:/Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • Field C ++用于g ++。exe; C:/Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++ EXE
    • 现场fortran可以是空的,点击完成

    6.4 将出现许多红色的线条在search字段中逐个input:WITH_QT,WITH_TBB,WITH_IPP,WITH_CUDA,CMAKE_BUILD_TYPE

    • WITH_QT – 必须被选中。
    • WITH_TBB,WITH_IPP,WITH_CUDA – 必须取消选中
    • CMAKE_BUILD_TYPE – 点击并input文本“debugging”(不含引号)。
    • 清除search栏中的文字。

    6.5 点击configure并继续点击configure直到所有的红线都消失,然后点击generateclosures cmake-gui.exe

  7. 转到terminal(〜命令提示符) ,cd到构build目录(opencv_bin)并键入mingw32-make
  8. 当进程结束很长时间后,键入mingw32-make install
  9. 添加到pathvariables到QtCreator / bin的pathC:\ Programs \ Qt \ Qt5.0.1 \ Tools \ QtCreator \ bin

现在我已经在QtCreator中创build了一个新的控制台应用程序。

//cvHello.pro QT += core QT -= gui TARGET = cvHello CONFIG += console CONFIG -= app_bundle TEMPLATE = app INCLUDEPATH += C:/Programs/opencv24/opencv_bin2/install/include LIBS += "C:/Programs/opencv24/opencv_bin2/bin/*.dll" SOURCES += main.cpp OTHER_FILES += \ img.JPG 

主要文件:

 //main.cpp #include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv/cv.h" using namespace std; int main() { cout << "Hello World!" << endl; cv::Mat mat; mat = cv::imread("img.JPG"); cvNamedWindow("hello"); cv::imshow("hello",mat); cvWaitKey(0); return 0; } 

最后我开始快乐起来。 调整这个问题时,我不得不尝试所有的方法,如何定义LIBS。 手动列出它们,起初我写错了。

最终它是如何工作的:

 LIBS += -LC:\\Programs\\opencv24\\opencv_bin2\\bin \ libopencv_core240d \ libopencv_highgui240d \ libopencv_imgproc240d \ libopencv_features2d240d \ libopencv_calib3d240d \ 

顺便说一句,如果我犯了语法错误,我很抱歉我的英文。 🙂