QT + OpenCV + MinGW 在windows下配置开发环境
由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成功就花了两天,期间查找了许多帖子,现在整理出来一套完整配置方案,附加几个注意点,供大家参考。
一、为什么要选择QT
OpenCV库是一套全面而简洁的计算机视觉算法库,OpenCV主要由一些C及C++函数和类构成。在Windows平台上开发视觉算法时,Visual Studio IDE无疑是一款强大的工具软件,但是,如果要给我们的OpenCV视觉算法加上漂亮的用户界面,即GUI,将会变得有些麻烦。在Visual Studio中,可以将OpenCV与MFC相结合开发界面,然而,MFC太庞大,且涉及到多线性(Multi-Thread)、先进图形图像显示、跨平台等需求时,使用MFC开发OpenCV算法界面会变得让人抓狂(姑且这么说吧)。另一种技术,就是在Visual Studio中,我们在视觉解决方案中可以建立C#工程,通过C#构建界面,这里,Visual Studio自带强大的Blend界面设计工具,那么问题又来了:C#和C++语言体系不同,C#为解释型语言,C++为编译型语言,OpenCV本身为C++代码,二者在代码和数据交互上存在太多麻烦的转换,转换的过程浪费开发时间。
因此,涉及到本文的主要目的,即:在Qt中引入OpenCV库,将Qt擅长的界面和OpenCV擅长的视觉算法有机结合起来,从而让我们快速的进行项目的构建和开发。
二、下载必备软件
- QT SDK for Open Source C++ development on Windows(在google上搜索一下官方网站即可找到),QT官网提供开源软件,注册一下即可下载。
- OpenCV 2.4.10:可以到opencv官网( http://sourceforge.net/projects/opencvlibrary/files/opencv-win)选择最新的OpenCV版本,由于本人电脑本来就有opencv2.4.10,故选择此版本,安装之后的目录下面有源码和个版本的lib和dll,不过为避免出现问题,还是自己编译吧。
- Cmake
编译opencv需要用到CMake这个工具。
下载:https://CMake.org/download/
建议下载安装版的,这个可以自动加入系统环境变量。

2. 安装,选择第二个,为所有用户添加系统路径。之后Qt可以自动找到CMake

三、安装QT Creator
1. 下载:http://download.qt.io/archive/qt/5.8/5.8.0/
建议选择离线安装包,在线安装太慢,经常会安装失败。
选择MinGW版本。VS 版本还需要安装对应的VS,单独安装Qt 是不可用的,而MinGW版本自身带有MinGW。
建议下载最新版本,因为里面带的MinGW版本较高,如果MinGW版本比opencv需要的版本低会编译失败。

2. 安装:安装路径不能有空格,我安装在默认路径,然后一路NEXT。
四、下载OpenCV
下载opencv for Windows
https://opencv.org/releases.html
连接里头有OpenCV各个版本,建议不要下载最新版本,只要下载源码就行了。

如果编译失败,试试其他版本的opencv,MinGW版本要跟opencv版本对应才能编译成功。
五、通过Cmake对OpenCV进行配置和生成

第一行添加Opencv源代码路径,第二行为生成的minGW编译文件所在位置。
点击左下方的configure,会提示选择编译器,此处一定要选择"Specify native compilers",之前直接选取“Use default native compilers”,最后在配置完成,生成动态库后在QT中使用经常出错,后重新选择配置编译才可以正常使用。

此处选择的编译器一定要是在环境变量中的C和C++编译器。g++.exe和gcc.exe在QT安装目录下Tool\Mingw5.3.0文件夹下。

如果出现上图红色错误,检查一下相关文件路径是否出错,如果出错,改成相应路径即可,例如:CMAKE_INSTALL_PREFIX的路径为install的路径,再次点击左下方的configure,成功后,有两处需要更改。

上图选取的地方是CMake生成的configure类型,可以填入Debug和Release,这样生成的库文件就可以指出上面两种版本的编译。
另外必须要勾选下图中的 WITH_QT,WITH_OPENGL以使CMake编译出可以供Qt使用的库文件
至此,就可以点击generate进行生成了。
六、开始编译和安装
在完成以上所有步骤之后,打开控制台,进入生成的目录中。依次键入 mingw32-make 和 mingw32-make install ,如之前配置无误,程序就会依次开始编译和安装,下图依次为相应结果:
键入mingw32-make(下图为网络图片,若按照上面CMAKE的配置路径改成

之前设置的mingw编译路径和mingw32-make.exe相关路径即可。)

回车开始编译,编译时间较久。

当编译完成后键入上图路径(第一次键入的命令后加install打包编译文件,路径修改方法同上)。

打包过程速度很快。
至此,Opencv的QT库已经编译完成。
在QT工程文件中pro添加Opencv的头文件路径和库即可完成。

按照上图的方法修改成相应的路径(网络图片),但是会出现一些错误,什么错误我忘记了,记得解决方法是在(LIBS+=)后面加上(-I)。
之后在头文件中包含一下即可使用。

QT + OpenCV + MinGW 在windows下配置开发环境的更多相关文章
- 【Objective-C】Windows下Objective-C开发环境配置
[Objective-C]Windows下Objective-C开发环境配置 ftp://ftpmain.gnustep.org/pub/gnustep/binaries/windows/ 最近打 ...
- windows下spark开发环境配置
http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...
- Metabase在Windows下的开发环境配置
Metabase在Windows下的开发环境配置 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} Metabase在Wind ...
- windows下STM32开发环境的搭建
一.概述 1.说明 笔者已经写了一篇Linux下STM32开发环境的搭建 ,这两篇文章的最区别在于开发环境所处的系统平台不一样,而其实这个区别对于开发环境的搭建其实影响不大,制作局部上的操作上发生了改 ...
- windows下配置lamp环境(3)---配置PHP5.4
下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...
- windows下配置lamp环境(5)---配置MySQL5.6
开始配置mysql 1.创建配置文件my.ini 1.进入C:\wamp\MySQL 2.把my-default.ini 另存一份:my.ini 3.开始编辑mysql的配置文件,打开my ...
- windows下配置lamp环境(0)---软件获取
工作快一年了,还没有怎么配置过服务器环境,经常使用集成套件wampserver,为了复习配置wamp服务器 特意在虚拟机中测试安装步骤如下. 安装前步骤:下载软件.软件下载地址如下: 1.apache ...
- windows下配置lamp环境(2)---配置Apache服务器2.2.25
配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...
- windows下配置lamp环境(1)---安装Apache服务器2.2.25
window下lamp成为wamp; 安装wamp环境的第一步是安装Apache服务器.下面开始安装步骤图文并茂. 一.双击安装包点“next”进行下一步,然后同意协议(这张图没有截):
随机推荐
- new Date().getTime()和System.currentTimeMillis()的区别
在Java中,new Date().getTime()和System.currentTimeMillis()都是用来获取当前时间的,并可以用DateFormat转成对应的时间格式,代码如下. impo ...
- git-bash的alias别名设置
正常需要设置别名时,直接使用 alias gs="git status" 输入上边的命令之后,就可以使用gs(命令)代替git status(命令),这是一种设置别名简化输入,提升 ...
- JAVA监听器Listener
JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...
- python实现单例模式的三种方式及相关知识解释
python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...
- js中的所有鼠标事件 键盘事件
https://www.cnblogs.com/torchstar/p/null.html
- Nodejs运行错误小结
(迁移自旧博客2017 04 15) 在使用过程中会遇到一些问题,学习过程中不定期更新. 问题一 错误如下 **events.js:72 throw er; // Unhandled 'error' ...
- 用Python实现简单通讯录
一个简单的通讯录例子 #!/usr/bin/python __author__ = 'fierce' #coding:utf-8 import os #引用os模块 import pickle #应用 ...
- canvas连线特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- selenium java maven testNg环境搭建
maven获取jar的xml地址:http://mvnrepository.com 步骤一安装jdk(略) 步骤二 安装eclipse(略) 步骤三 安装testNG 步骤四 maven安装 步骤三 ...
- Windows Server 2012 R2 英文版安装中文语言包教程
Windows Server 是云操作系统的主要组成部分. 有了 Windows Server,再加上云操作系统内的开发者技术,您就可以构建现代业务应用程序. 现代业务应用程序通常涵盖内部部署资源和公 ...