由于研究项目需要,最近开始接触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这个工具。

    1. 下载: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下配置开发环境的更多相关文章

  1. 【Objective-C】Windows下Objective-C开发环境配置

    [Objective-C]Windows下Objective-C开发环境配置 ftp://ftpmain.gnustep.org/pub/gnustep/binaries/windows/   最近打 ...

  2. windows下spark开发环境配置

    http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...

  3. Metabase在Windows下的开发环境配置

    Metabase在Windows下的开发环境配置 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} Metabase在Wind ...

  4. windows下STM32开发环境的搭建

    一.概述 1.说明 笔者已经写了一篇Linux下STM32开发环境的搭建 ,这两篇文章的最区别在于开发环境所处的系统平台不一样,而其实这个区别对于开发环境的搭建其实影响不大,制作局部上的操作上发生了改 ...

  5. windows下配置lamp环境(3)---配置PHP5.4

    下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...

  6. windows下配置lamp环境(5)---配置MySQL5.6

    开始配置mysql 1.创建配置文件my.ini   1.进入C:\wamp\MySQL   2.把my-default.ini 另存一份:my.ini   3.开始编辑mysql的配置文件,打开my ...

  7. windows下配置lamp环境(0)---软件获取

    工作快一年了,还没有怎么配置过服务器环境,经常使用集成套件wampserver,为了复习配置wamp服务器 特意在虚拟机中测试安装步骤如下. 安装前步骤:下载软件.软件下载地址如下: 1.apache ...

  8. windows下配置lamp环境(2)---配置Apache服务器2.2.25

    配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...

  9. windows下配置lamp环境(1)---安装Apache服务器2.2.25

    window下lamp成为wamp; 安装wamp环境的第一步是安装Apache服务器.下面开始安装步骤图文并茂. 一.双击安装包点“next”进行下一步,然后同意协议(这张图没有截):

随机推荐

  1. Node.js基础学习二之POST请求

    本篇介绍下 Node.js post 请求 需求: 用户登录,前端界面输入用户名和密码,点击登录请求后台验证,根据后台反馈的信息做出响应 前端: (1)使用form表单 (2)使用ajax异步请求 服 ...

  2. Gradle Repository

    // 该init.gradle文件,请保存到${USER_HOME}/.gradle/文件夹下,如:C:\Users\Administrator\.gradle allprojects { repos ...

  3. Unity用Excel.dll简单读取Excel内容

    Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...

  4. 换个角度聊聊FaaS

    Serverless/FaaS伴随着k8s的热度增加,也成为了热门话题.相关文章介绍了很多,这里笔者不一一赘述,而是从个人见解上聊聊关于FaaS的架构和意义. FaaS可能的架构优化 从AppEngi ...

  5. VS2010下安装boost库

    在我们的C++项目中安装boost库,下面以VS2010版本作为例子,其它版本的设置也差不多. 一.编译生成boost库 1.下载最新的boost(本人下载的是boost_1_56_0).boost官 ...

  6. react的this.setState没有触发render

    一.浅比较 出现情况: 明明改变了值, 并且回调函数也触发了, 但是就是不触发render import React, { PureComponent } from 'react' import { ...

  7. Pandas 基础(16) - Holidays

    这节依然是关于时间方面的知识.上一节学习了如何获取日期序列的函数, 以及通过一些基本的参数设置可以使时间序列跳过休息日等.这一节, 将要深入学习这个点, 做更自定义的设计. 通过上一节的学习, 我们知 ...

  8. Spark Standalone cluster try

    Spark Standalone cluster node*-- stop firewalldsystemctl stop firewalldsystemctl disable firewalld-- ...

  9. java第四次上机

    package bbb;public class Person { private String name; private int age; public Person(){ } public Pe ...

  10. Myeclipse6.5每次打开properties中文注释都会变成乱码

    发现无论怎么写properties注释,只要重新打开me就会出现乱码.默认properties是不支持中文的.所以最好用英文写properties文档.也可以写好直接翻译.已经写好的乱码直接拖到Chr ...