Windows系统 为 QT5软件 搭建 OpenCV2 开发环境

原创 2016年08月30日 02:34:10

Windows系统 为 QT5软件 搭建 OpenCV2 开发环境

我们的电脑系统:Windows 10 64位
Qt5 软件:Qt 5. 7. 0
OpenCV2 版本:OpenCV2.4.10

1. 安装 Qt 5 软件

请见博客:Windows系统 安装 Qt 5.7.0

注意: 请你务必要看这个Qt软件的安装教学。如果你没有像教学里面一样添加环境变量的话,请你添加Qt软件的环境变量。

2. 安装 CMake 软件

请见博客:Windows系统 安装 CMake

3. 下载 OpenCV 源代码

OpenCV官网下载:

4. 编译 OpenCV2.4.10

Step 1 . 打开 CMake 软件。
点击Browse Source… 按钮,选择 OpenCV源代码 所在目录:xxx/opencv/sources

这里写图片描述

Step 2 .
1. 我们在 xxx/opencv/ 路径里面, 新建一个名字为 opencv-qt5-build的文件夹。这个文件夹是用来存放 编译OpenCV后生成的文件 的文件夹。
2. 点击 Browse Build…(源码路径) 按钮,选择 xxx/opencv/opencv-qt5-build 路径

这里写图片描述

完成上面的 Step 1Step 2后,现在是这个样子的:

这里写图片描述

Step 3 .

  1. 现在点击:Configure (生成路径)按钮

这里写图片描述

  1. 再新弹出的窗口里面选择:MinGW Makefiles。如下图所示:

这里写图片描述

Step 4 . Configure结束后,会出现粉红色背景的各种选项。拖动滑块到页面下部位置。勾选:WITH_OPENGLWITH_QT 这两个复选框:

这里写图片描述

Step 5 . 再次点击Configure按钮。这次粉红色背景的各种选项,是刚刚检测到的Qt5相关的:

这里写图片描述

注意:如果你在安装Qt5软件的步骤中,没有给Qt5添加环境变量的话,那么在这一步,CMake软件是不会找到这次Qt5相关的项的。
如果你在这一步时,遇到问题。请参考这个网站:http://blog.csdn.net/zhaocj/article/details/38944037,或许可以解决你的问题。

Step 6 . 再次点击Configure按钮,知道粉红色消失

这里写图片描述

Step 7 . 点击 Generate 按钮,生成 makefile 文件.成功后,底下会提示 :Generating done。如下图所示:(这里,我需要了很多的警告:CMake Warning (dev),没有关系,不用管它。)

这里写图片描述

Step 8 . 打开 cmd,进入刚才设置的目标路径(D:\software_install_package_win\OpenCV2\opencv\opencv_qt5_build)

cd D:
D:
cd D:\software_install_package_win\OpenCV2\opencv\opencv_qt5_build

输入操作命令,如下图所示:

这里写图片描述

Step 9 . 输入 mingw32-make 命令开始编译(编译前,关闭所有杀毒软件)。如下图所示:

这里写图片描述

这是一个漫长的过程,大约需要 20分钟 ~ 60分钟。

在这漫长的编译时间里,我先简单介绍一下:OpenCV就是一个比较大的程序工程。我们使用CMake软件是为了生成OpenCV这个程序工程适合于我们电脑系统及开发软件的一个用于编译程序的MakeFile文件。 “使用 mingw32-make 命令编译OpenCV”:就是使用这个刚刚生成的MakeFile文件来编译OpenCV源代码。当编译完成之后,我们使用mingw32-make install命令,来自动安装:从OpenCV 源代码中编译生成的可执行文件。(对于Windows系统来说,其实这一步我们可以不做。因为它并没有安装在系统磁盘里面,只是存放在xxx\opencv\opencv_qt5_build路径里的install文件夹里,并且这个文件夹里的内容,我们又不用。)
大家都知道,要想让源代码生成可执行文件,必须要经历两个步骤:
1. 编译 :将源代码编译成多个链接文件
2. 链接 :将多个链接文件链接起来,生成一个可执行文件。

对于OpenCV,它是一个库,我们需要的是:它编译出来的链接文件,就可以了。当我们自己写程序的时候,如果程序里面使用到某些OpenCV相关的函数时,那么在编译和链接我们自己程序的时候。在编译过程中,就只是编译我们自己的程序源代码;而在链接过程中,是将我们的程序生成的链接文件和使用到的OpenCV的某些链接文件链接到一起,最终生成一个可执行文件。
大家现在也都轻身经历了,编译OpenCV源代码(生成链接文件)是需要花费很长的时间的。你可以想象一下:如果我们自己写的程序每次编译都要编译OpenCV源代码的话,那是一件多么坑爹的事情。如果我们先把OpenCV的源代码单独编译,生成链接文件。这样在我们自己的程序里面,如果使用到了OpenCV库的函数,我们只要让我们的程序知道OpenCV的链接文件的所在路径,我们就可以在编译程序的时候,只编译我们自己的程序,而在链接的时候,选择性的链接OpenCV的链接文件,这样生成可执行文件的速度就快得多了。
这就是为什么我们现在要花这么长的时间,在这里编译OpenCV源代码的原因。不知道我有没有说清楚。

好了,现在已经编译完成了。

这里写图片描述

Step 10 . 执行 mingw32-make install,大约 30秒 ~ 90秒 的时间。

这里写图片描述

5. 将编译生成的有用的OpenCV相关文件,整理出来

来到xxx/opencv/opencv_qt5_build/install路径里面:

这里写图片描述

我们需要这个路径里面的x64/mingw/binx64/mingw/lib 以及 install 这三个文件夹。(这三个文件夹是有用的,其他的都是没有用的文件)

Step 1 . 新建一个文件夹opencv2410-qt5,(文件夹名不能有中文,不能有空格和其他特殊符号):路径为:C:\third_packages\opencv\opencv2410-qt5

Step 2 . 拷贝这三个有用的文件夹,放在这个opencv2410-qt5文件夹下:

这里写图片描述

Step 3. 添加环境变量。将OpenCVbin目录添加到环境变量里面:

C:\third_packages\opencv\opencv2410-qt5\bin

这里写图片描述

做到这一步。为Qt CreatorOpenCV 的环境就算是搭建完成了。
下面我们编写一个类似 HelloWorld 的程序来测试一下,刚刚搭建的环境是否可以使用。

6. 测试

Step 1 . 打卡 Qt Creator,新建一个空的控制台应用工程。

这里写图片描述

将工程名命名为:helloWorld

Step 2 . .pro文件中添加 OpenCV头文件链接文件 所在路径

将下面的代码添加到 helloWorld.pro 文件里面:

INCLUDEPATH+=C:\third_packages\opencv\opencv2410-qt5\include\opencv \
             C:\third_packages\opencv\opencv2410-qt5\include\opencv2 \
             C:\third_packages\opencv\opencv2410-qt5\include


LIBS+=  C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_calib3d2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_contrib2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_core2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_features2d2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_flann2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_gpu2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_highgui2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_imgproc2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_legacy2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_ml2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_nonfree2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_objdetect2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_ocl2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_photo2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_stitching2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_ts2410.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_video2410.dll.a \
        C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_videostab2410.dll.a \

添加后,如图所示:

这里写图片描述

Step 3 . 先将图片 image.jpg(去网上随便找一个图片,然后命名为:image.jpg) 放在与 main.cpp 文件同一文件夹下。

Step 4 . 将下面的代码复制到main.cpp文件里面:

#include <QCoreApplication>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    cv::Mat image = cv::imread("..\\helloWorld\\image.jpg");
    cv::namedWindow("Image");
    cv::imshow("Image", image);

    cv::waitKey(0);
    return a.exec();
}

运行程序(快捷键:Ctrl + R):

这里写图片描述

注意:
图片的路径一定要正确。否则你会遇到下面的问题:

init done
opengl support available
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file D:\software_install_package_win\OpenCV2\opencv\sources\modules\highgui\src\window.cpp, line 269
terminate called after throwing an instance of 'cv::Exception'
  what():  D:\software_install_package_win\OpenCV2\opencv\sources\modules\highgui\src\window.cpp:269: error: (-215) size.width>0 && size.height>0 in function imshow


This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

这里写图片描述

解决办法:
就是使用正确的图片路径。并且路径不能有中文,空格和一些奇怪的符号。

搞定


版权声明:本文为博主原创文章,未经博主允许不得转载。 更多博文,请浏览:http://www.aobosir.com/

Windows系统 为 QT5软件 搭建 OpenCV2 开发环境

Windows系统 为 QT5软件 搭建 OpenCV2 开发环境我们的电脑系统:Windows 10 64位 Qt5 软件:Qt 5. 7. 0 OpenCV2 版本:OpenCV2.4.101...
  • github_35160620
  • github_35160620
  • 2016年08月30日 02:34
  • 16978

Windows下Qt5环境搭建

1、简介 最近接触的东西有点多,需要使用Qt,之前一直是在Linux下使用Qt,换到Windows下配置环境时,还遇到点麻烦,这篇文章用于记录我所遇到的问题,帮助遇到相同问题的朋友快速解决问题!2、...
  • CMbug
  • CMbug
  • 2015年06月01日 21:58
  • 5085

Qt for ARM_Linux环境搭建-Qt5.7+iTop4412嵌入式平台移植

经过为期3天的编译、移植,终于将Qt5.7成功移植到iTop4412开发板,板载exynos4412处理器,基于ARM Cortex-A9内核。因此,本篇教程以iTop4412示例,适用于Qt5.7在...
  • hechao3225
  • hechao3225
  • 2016年10月31日 11:42
  • 4019

Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境

Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境我们的电脑系统:Windows 10 64位 Visual Studio 软件:Visual Studio 20...
  • github_35160620
  • github_35160620
  • 2016年08月30日 03:08
  • 16425

OpenCV学习之路之一开发环境搭建(W7+Qt4+opencv2+mingw)

OpenCV学习之路之开发环境搭建(w7+ Qt+opencv2+mingw) 因为项目需要,这段时间开始学习opencv了,不得不说道路还是挺漫长的,之前对这个图形库有所了解,不过都是概念型的,...
  • u013704336
  • u013704336
  • 2016年12月17日 23:27
  • 1149

搭建一个开发Predix软件的Windows系统(4)配置Java开发环境

Predix是基于Cloud Foundry的,因此对多种编程语言都提供支持,详情可以查看: https://predix-io.run.aws-jp01-pr.ice.predix.io/serv...
  • PredixCN
  • PredixCN
  • 2017年01月01日 19:58
  • 1471

Qt Creator+MinGW+OpenCV2.3.1 开发环境搭建(windows 7 系统)

折腾了一个下午+晚上,总算弄好了,下面说下步骤 1.必备软件: Qt SDK for Open Source C++ development on Windows:http://qt.nokia....
  • zimingjushi
  • zimingjushi
  • 2011年08月24日 10:13
  • 11266

Qt5 for Android 在Windows系统下的环境搭建

在win7和xp系统下基于android sdk ndk,搭建了Qt for android的开发环境,文章中所用的软件都可以超链接到下载网站,方便大家下载。...
  • yangguanghaozi
  • yangguanghaozi
  • 2013年08月01日 22:55
  • 1987

OpenNI2+OpenCV2+NITE2开发环境

  • 2014年05月20日 10:09
  • 277KB
  • 下载

windows系统下搭建php开发环境

  • 2014年11月25日 15:59
  • 659KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows系统 为 QT5软件 搭建 OpenCV2 开发环境
举报原因:
原因补充:

(最多只允许输入30个字)