Windows系统 为 QT5软件 搭建 OpenCV2 开发环境
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 1 和 Step 2后,现在是这个样子的:
Step 3 .
- 现在点击:Configure (生成路径)按钮
- 再新弹出的窗口里面选择:MinGW Makefiles。如下图所示:
Step 4 . Configure结束后,会出现粉红色背景的各种选项。拖动滑块到页面下部位置。勾选:WITH_OPENGL 和 WITH_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/bin
、 x64/mingw/lib
以及 install
这三个文件夹。(这三个文件夹是有用的,其他的都是没有用的文件)
Step 1 . 新建一个文件夹opencv2410-qt5
,(文件夹名不能有中文,不能有空格和其他特殊符号):路径为:C:\third_packages\opencv\opencv2410-qt5
Step 2 . 拷贝这三个有用的文件夹,放在这个opencv2410-qt5
文件夹下:
Step 3. 添加环境变量。将OpenCV的bin
目录添加到环境变量里面:
C:\third_packages\opencv\opencv2410-qt5\bin
做到这一步。为Qt Creator 下 OpenCV 的环境就算是搭建完成了。
下面我们编写一个类似 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.解决办法:
就是使用正确的图片路径。并且路径不能有中文,空格和一些奇怪的符号。
搞定
Windows系统 为 QT5软件 搭建 OpenCV2 开发环境的更多相关文章
- Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境
Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境 我们的电脑系统:Windows 10 64位 Visual Studio 软件:Visual Studio 20 ...
- Windows系统下Eclipse上搭建Python开发环境
参考网站: https://blog.csdn.net/zhangphil/article/details/78962159 1.先安装JDK 和python,参考网站:https://www.c ...
- Windows下visual studio code搭建golang开发环境
Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...
- 在Windows系统中安装集成的PHP开发环境
原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XA ...
- windows下VisualStudio和QtCreator搭建Qt开发环境
一.简介 集成开发平台IDE都有各自的长处,编写Qt程序可根据自己的喜好来选择相应的IDE.下述文章都是装载博友的文章,其中有很多细节还得自己调整. 二.详解 1.VisualStudio搭建Qt开发 ...
- Windows 8(64位)如何搭建 Android 开发环境与真机测试(转)
可以参考http://wenku.baidu.com/link?url=ghU6IFS1WJXLFKfM_0efv9YQEnMDBrdi9CXwirSs5IOLLeUfdIOh8OOVv0DX89Lt ...
- Windows10系统下使用Docker搭建ClickHouse开发环境
前提 随着现在业务开展,几个业务系统的数据量开始急剧膨胀.之前使用了关系型数据库MySQL进行了一次数据仓库的建模,发现了数据量上来后,大量的JOIN操作在提高了云MySQL的配置后依然有点吃不消,加 ...
- 在Mac 系统上使用MAMP搭建PHP开发环境
1.下载MAMP套件 下载地址为https://www.mamp.info/en/ 2.安装此.dmg文件 3.配置apache虚拟主机 (1)在/Applications/MAMP/conf/apa ...
- ubuntu下搭建JAVA开发环境【转】
转自:http://jingyan.baidu.com/article/86fae346b696633c49121a30.html JAVA开发环境是一种跨平台的程序设计语言,可以在windows.L ...
随机推荐
- element-ui树结构懒加载
在实际项目中,往往树结构数据量较大,这时树节点必须懒加载 element-ui树的懒加载: <div style="width:100%;height:420px;overflow: ...
- python3.x学习笔记2018-02-05更新
前言:python3.x部分学习笔记,有意交流学习者可加wechat:YWNlODAyMzU5MTEzMTQ=.如果笔记内容有错,请指出来. 对数据类型的操作 可变数据类型:列表,集合,字典 列表: ...
- Javascript-- jQuery Ajax应用
使用ajax()方法加载服务器数据 使用ajax()方法是最底层.功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下: jQuery.a ...
- npm镜像安装
安装淘宝NPM镜像 https://npm.taobao.org/ npm install -g cnpm --registry=https://registry.npm.taobao.org 配置 ...
- loopqueue
import java.util.Arrays; public class loopQueue <E>{ public Object[] data=null; private int ma ...
- 第四篇 PHP的成长路线
学PHP开发这么久,进步不大,个人进行了分析.认为是我自己没有设定目标,就是对于自己要学成什么样没有清晰的认识. 今天特别了解了一下PHP的成长参考路线,以便自己以后迷失方向.PHP主要应该基于MYS ...
- Eclipse中的普通Java项目如何部署到Tomcat中
我现在的做法: 1.在Eclipse中配置Tomcat时,选择创建Context文件,而不是server.xml,好处是文件可以随便命名,与虚拟目录一致(即xml中的属性path).Tomcat加载项 ...
- MySQL mysqldump备份与恢复
1 用户权限 grant select,RELOAD,PROCESS,SUPER, REPLICATION CLIENT ON *.* TO 'bak'@'192.168.%' IDENTIFIED ...
- _tprintf(), printf(),wprintf() 与控制字符 %s 和 %S(Unicoe与GB2312))
_tprintf() 是 printf() 和 wprintf() 的通用类型:如果定义了 _unicode,那么 _tprintf() 就会转换为 wprintf(),否则为 printf() . ...
- WebRTC的拥塞控制技术<转>
转载地址:http://www.jianshu.com/p/9061b6d0a901 1. 概述 对于共享网络资源的各类应用来说,拥塞控制技术的使用有利于提高带宽利用率,同时也使得终端用户在使用网络时 ...