Win7下qt5.3.1+opencv2.4.9编译环境的搭建(好多 Opencv2.4.9源码分析的博客)

到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装好了Qt libraries、Qt Creator,其中Qt Creator为3.1.2版本。

到官网http://opencv.org/downloads.html下载OpenCV for Windows2.4.9版本——opencv-2.4.9.exe。执行该文件,把它解压到适当的目录下即可,我是把它放到了c盘的根目录下,即c:\opencv。

在http://www.cmake.org/cmake/resources/software.html下载cmake-3.0.1-win32-x86.exe文件。安装cmake,安装在C:\CMake目录下。

设置系统的环境变量,即把C:\Qt\Qt5.3.1\Tools\MinGW\bin加入系统的Path环境变量中,因为在CMake编译过程中会用到该目录下的库。

在桌面上点击CMake(cmake-gui)图标,执行CMake,在Where is the source code栏和Where to build thebinaries栏中分别C:/opencv/soureces为opencv和C:/opencv/MinGW。C:/opencv/MinGW为编译后库文件所存放的目录,需要自己创建该目录。然后点击configure按钮,打开新的窗口,在Specify the generator for this project下选择MinGW Makefiles,然后选择Specify native compilers,点击Next按钮,打开新的窗口,在C一栏中填写C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/gcc.exe,在C++一栏中填写C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/g++.exe,Fortran不填写。然后点击Finish按钮,开始配置,这时会出现如下的类似错误提示:

CMake Error: CMake was unable to find abuild program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different buildtool.

CMake Error: CMake was unable to find abuild program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different buildtool.

CMake Error: Error required internal CMakevariable not set, cmake may be not be built correctly.

Missing variable is:

CMAKE_CXX_COMPILER_ENV_VAR

CMake Error: Could not find cmake modulefile: C:/opencv/MinGW/CMakeFiles/3.0.1/CMakeCXXCompiler.cmake

CMake Error: Error required internal CMakevariable not set, cmake may be not be built correctly.

Missing variable is:

CMAKE_C_COMPILER_ENV_VAR

CMake Error: Could not find cmake modulefile: C:/opencv/MinGW/CMakeFiles/3.0.1/CMakeCCompiler.cmake

Configuring incomplete, errors occurred!

找到Name为CMAKE_MAKE_PROGRAM的一项,把它的Value填写为C:/Qt/Qt5.3.1/Tools/mingw482_32/bin/mingw32-make.exe即可。再次点击Configure,这时不会提示任何错误,表明配置成功。

我们还需要把QT加上,找到WITH,把它下面的WITH_QT和WITH_OPENGL选上,再次Configure。这时会出现类似下面的错误提示:

CMake Error atC:/CMake/share/cmake-3.0/Modules/FindQt4.cmake:1316 (message):

Found unsuitable Qt version "" from NOTFOUND, this coderequires Qt 4.x

Call Stack (most recent call first):

cmake/OpenCVFindLibsGUI.cmake:34 (find_package)

CMakeLists.txt:466 (include)

找到QT_QMAKE_EXECUTABLE,它的值填写为:C:/Qt/Qt5.3.1/5.3/mingw482_32/bin/qmake.exe

找到QT_MKSPECS_DIR,它的值填写为:C:/Qt/Qt5.3.1/5.3/mingw482_32/mkspecs

找到QT_QTCORE_LIBRARY_DEBUG,它的值填写为:C:/Qt/Qt5.3.1/5.3/mingw482_32/bin/Qt5Cored.dll

找到QT_QTCORE_LIBRARY_RELEASE,它的值填写为C:/Qt/Qt5.3.1/5.3/mingw482_32/bin/Qt5Core.dll

找到QT_QTCORE_INCLUDE_DIR,它的值填写为C:/Qt/Qt5.3.1/5.3/mingw482_32/include/QtCore/5.3.1/QtCore

再次点击Configure,这时会出现类似下面的错误提示:

CMake Error atC:/CMake/share/cmake-3.0/Modules/FindQt4.cmake:1316 (message):

Found unsuitable Qt version "5.3.1" from

C:/Qt/Qt5.3.1/5.3/mingw482_32/bin/qmake.exe, this code requires Qt 4.x

Call Stack (most recent call first):

cmake/OpenCVFindLibsGUI.cmake:34 (find_package)

CMakeLists.txt:466 (include)

在Ungrouped Entries下找到Qt5Concurrent_DIR,Qt5Core_DIR,Qt5Gui_DIR,Qt5Test_DIR,Qt5Widgets_DIR,Qt5OpenGL_DIR,它们的Value分别填写为:

C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5Concurrent

C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5Core

C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5Gui

C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5Test

C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5Widgets

C:/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5OpenGL

再次Configure,这时配置完成,不会出现任何错误提示。虽然会有许多警告,如This warning is for project developers. Use -Wno-dev to suppress it.,但不用去管,按Generate。Generate完成后,关闭CMake窗口。

打开系统的命令终端,进入C:\opencv\MinGW目录,执行mingw32-make命令,这需要一段时间,该命令执行完后,再执行mingw32-make install命令。这样可用于Qt的opencv库文件就生成了。

再次添加系统的Path环境变量,内容为:c:\Qt\Qt5.3.1\5.3\mingw482_32\bin;c:\opencv\MinGW\bin。

以后我们用Qt Creator编译opencv的时候,在创建一个新工程后,还需要在该工程的工程文件.pro文件内添加下列语句:

INCLUDEPATH+=c:\opencv\build\include\opencv\

c:\opencv\build\include\opencv2\

c:\opencv\build\include

LIBS+=c:\opencv\MinGW\lib\libopencv_calib3d249.dll.a\

c:\opencv\MinGW\lib\libopencv_contrib249.dll.a\

c:\opencv\MinGW\lib\libopencv_core249.dll.a\

c:\opencv\MinGW\lib\libopencv_features2d249.dll.a\

c:\opencv\MinGW\lib\libopencv_flann249.dll.a\

c:\opencv\MinGW\lib\libopencv_gpu249.dll.a\

c:\opencv\MinGW\lib\libopencv_highgui249.dll.a\

c:\opencv\MinGW\lib\libopencv_imgproc249.dll.a\

c:\opencv\MinGW\lib\libopencv_legacy249.dll.a\

c:\opencv\MinGW\lib\libopencv_ml249.dll.a\

c:\opencv\MinGW\lib\libopencv_objdetect249.dll.a\

c:\opencv\MinGW\lib\libopencv_video249.dll.a

完成!

http://blog.csdn.net/zhaocj/article/details/38944037

时间: 2024-08-09 22:01:22

Win7下qt5.3.1+opencv2.4.9编译环境的搭建(好多 Opencv2.4.9源码分析的博客)的相关文章

qt5.3.1+opencv2.4.9编译环境的搭建

到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装好了Qt libraries.Qt Creator,其中Qt Creator为3.1.2版本. 到官网http://opencv.org/downloads.html下载OpenCV for Windows2.4.9版本--opencv-2.4.9.exe.执行该文件,把它解压到适当的目录下即可,我是把

Opencv2.4.9源码分析——Cascade Classification(三)

前两篇文章分别介绍了级联分类器的原理和源码解析,下面我们给出一个具体的应用实例. 下面我们以车牌识别为例,具体讲解OpenCV的级联分类器的用法.在这里我们只对蓝底白字的普通车牌进行识别判断,对于其他车牌不在考虑范围内.而且车牌是正面照,略微倾斜可以,倾斜程度太大也是不在识别范围内的. 我们通过不同渠道共收集了1545幅符合要求的带有车牌图像的照片(很遗憾,我只能得到这么多车牌照片,如果能再多一些就更好了!),通过ACDSee软件手工把车牌图像从照片中剪切出来,并统一保存为jpg格式.为便于后续

Opencv2.4.9源码分析——Gradient Boosted Trees

一.原理 梯度提升树(GBT,Gradient Boosted Trees,或称为梯度提升决策树)算法是由Friedman于1999年首次完整的提出,该算法可以实现回归.分类和排序.GBT的优点是特征属性无需进行归一化处理,预测速度快,可以应用不同的损失函数等. 从它的名字就可以看出,GBT包括三个机器学习的优化算法:决策树方法.提升方法和梯度下降法.前两种算法在我以前的文章中都有详细的介绍,在这里我只做简单描述. 决策树是一个由根节点.中间节点.叶节点和分支构成的树状模型,分支代表着数据的走向

Opencv2.4.9源码分析——Random Trees

一.原理 随机森林(Random Forest)的思想最早是由Ho于1995年首次提出,后来Breiman完整系统的发展了该算法,并命名为随机森林,而且他和他的博士学生兼同事Cutler把Random Forest注册成了商标,这可能也是Opencv把该算法命名为Random Trees的原因吧. 一片森林是由许多棵树木组成,森林中的每棵树可以说是彼此不相关,也就是说每棵树木的生长完全是由自身条件决定的,只有保持森林的多样性,森林才能更好的生长下去.随机森林算法与真实的森林相类似,它是由许多决策

OpenCV2.4.9源码分析——Support Vector Machines

引言 本文共分为三个部分,第一个部分介绍SVM的原理,我们全面介绍了5中常用的SVM算法:C-SVC.ν-SVC.单类SVM.ε-SVR和ν-SVR,其中C-SVC和ν-SVC不仅介绍了处理两类分类问题的情况,还介绍处理多类问题的情况.在具体求解SVM过程中,我们介绍了SMO算法和广义SMO算法.第二个部分我们给出了OpenCV中SVM程序的详细注解.第三个部分我们给出了一个基于OpenCV的SVM算法的简单应用实例. 由于这篇文章太长,公式很多,把文章复制到这里,阅读体验会很差,因此,我把这篇

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

Android4.42-Setting源码分析之蓝牙模块Bluetooth(下)

接着上一篇Android4.42-Settings源码分析之蓝牙模块Bluetooth(上) 继续蓝牙模块源码的研究 THREE,蓝牙模块功能实现 switch的分析以及本机蓝牙重命名和可见性的分析见上一篇,接下来进行第三章第三部分的介绍:关于蓝牙远程设备列表的加载.如果没有看过,建议看看上一篇关第一章蓝牙的布局,有助于理解 3>,设备列表的加载 因为这部分代码很多,所以在介绍时先说一下思路,程序首先通过底层的BluetoothAdapter的getBondedDevices()方法获取到已配对

Tomcat源码分析——请求原理分析(下)

前言 本文继续讲解TOMCAT的请求原理分析,建议朋友们阅读本文时首先阅读过<TOMCAT源码分析——请求原理分析(上)>和<TOMCAT源码分析——请求原理分析(中)>.在<TOMCAT源码分析——请求原理分析(中)>一文我简单讲到了Pipeline,但并未完全展开,本文将从Pipeline开始讲解请求原理的剩余内容. 管道 在Tomcat中管道Pipeline是一个接口,定义了使得一组阀门Valve按照顺序执行的规范,Pipeline中定义的接口如下: getBas

Android中将xml布局文件转化为View树的过程分析(下)-- LayoutInflater源码分析

在Android开发中为了inflate一个布局文件,大体有2种方式,如下所示: // 1. get a instance of LayoutInflater, then do whatever you want LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); // 2. you're in some View class, then jus