详解QT5.10.0搭载OpenCV3.4.0环境配置步骤说明
一、准备工作:
1下载Qt5.10.0 和 Qt Creator 4.5.0软件(http://download.qt.io/official_releases/qt/)
2.下载opencv3.40 (https://opencv.org/releases.html)
3.下载Cmake3.10.1 (https://cmake.org/download/)
二、软件安装
1.qt软件安装与配置
①安装Qt5.10.0,我的安装路径:D:\Qt
注意点:在弹出的“选择组件窗口”中,选择相关组件(支持QtCreator开发方式如下图所以,支持VisualStudio开发方式则增加相应的MSVC对应的版本),选择组件中关于“Strawberry Perl 5.22.1.3”的不勾选(这个组件在非首次安装时容易报错且当下学习使用不到),勾选下方工具的MinGw5.3.0设置完毕后,点击“下一步按钮”进入下一步安装即可。
②安装Qt Creator 4.5.0软件,安装D:\Qt目录下,选项默认即可。
③设置环境变量,在系统环境变量path中添加:
D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin;
D:\Qt\Qt5.10.0\Tools\mingw530_32\bin
2. CMake安装和配置
默认安装,不一定非要安装在C盘,可以放入与QT安装的目录下。
注意点:在安装过程中勾选“为所有用户添加环境变量”:Add CMake to the system PATH for all users 。
3.opencv安装
opencv的安装实际上是解压,解压到用户指定位置,在这里我的目录是D:\Qt,这样安装路径统一在同一个文件夹下。
三、Opencv库的编译
1.配置CMake编译条件
①打开CMake(cmake-gui)。
②选择OpenCV安装目录下的源码文件:D:\Qt\opencv3.40\opencv\sources
③选择想要编译输出目录文件路径,如统一存在统一目录下,在D:\Qt文件下新建一个opencvbuild3.40 文件夹,选择该路径: D:\Qt\opencvbuild3.40
④点击Configure进行配置。
⑤选择MinGW Makefiles,勾选Special native compilers然后点击Next
⑥配置编译器
在下图1处,C编译器选择D:\Qt\Qt5.10.0\Tools\mingw530_32\bin\gcc.exe;
在下图2处,C++编译器选择D:\Qt\Qt5.10.0\Tools\mingw530_32\bin\g++.exe
Fortran不用填写,然后点击finish。注意:此过程保证网络畅通,因为需要下载几个文件。
⑦等待一会儿后,会有一堆红色出现,勾选WITH_QT和WITH_OPENGL,不能勾选WITH_IPP(默认不勾选),再次点击configure。
注意:若仍有红色出现,再次点击configure直至红色消失(有时需要多次,一般情况下两次即可)。最后,点击Generate按钮,完成后即可关闭CMake。
2. 编译
①在编译之前,在源目录D:\Qt\opencv3.4.0\opencv\source\cmake\下找到OpenCVCompilerOptions.cmake文件。
记事本打开文件,找到add_extra_compiler_option(-Werror=non-virtual-dtor)
将它注释掉,前面加#变成:#add_extra_compiler_option(-Werror=non-virtual-dtor)
②然后按住快捷键win+R,运行cmd
进入编译输出目录D:\Qt\opencvbuild3.40,然后输入”mingw32-make“命令. 备注:加速编译时间可以使用可选参指令” mingw32-make -j 8 “(处理器是i7-3770为8核),
注意点:编译opencv,此过程时间较长,电脑编译了一个多小时。
③直到编译结束。然后输入命令:mingw32-make install ,大约一到两分钟就安装完成了。
注意点:若编译期间出现如下错误:
错误: ... windres.exe: unknown option -- W ...
根据提示依据如下思路解决: in cmake uncheck ENABLE_PRECOMPILED_HEADERS
即:即在3.1.7步骤中Cmake勾选勾选WITH_QT和WITH_OPENGL时候将ENABLE_PRECOMPILED_HEADERS勾选去除,重新configure 并重新编译;
错误:in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...
解决:put the following line: #define NO_DSHOW_STRSAFE, before the line : #include "DShow.h"
即:在D:\Qt\opencv3.4.0\opencv\source\modules\videoio\src\cap_dshow.cpp中,在#include “DShow.h“上一行中插入: #define NO_DSHOW_STRSAFE
备注:参考地址:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
四、文件大小
不同版本的OpenCV编译安装后的文件不同,3.4.0版本编译后750M
使用2.4.13.3版本文件有1.98G。若需要裁剪倾向请参考如下博文:https://www.cnblogs.com/TooyLee/p/6438070.html
备注:想生成目录结构到txt文件,可在cmd中转到某目录,输入tree /f > list.txt
五、使用Qt 加载OpenCV配置
①环境变量添加D:\Qt\opencvbuild3.40\install\x86\mingw\bin
②打开Qt Creator新建项目(非Qt项目,纯C++应用),命名为OpenCV后,打开OpenCV.pro文件,添加如下语句:
INCLUDEPATH += D:\Qt\opencvbuild3.40\install\include
LIBS += -L D:\Qt\opencvbuild3.40\install\x86\mingw\bin\libopencv_*.dll
LIBS += -L D:\Qt\opencvbuild3.40\install\x86\mingw\lib\libopencv_*.a
③右击项目文件OpenCV文件夹,选择“执行qmake“编译后即可。
六、测试示例程序
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{
cv::Mat image;
std::cout << "This image is " << image.rows << " x " << image.cols << std::endl;
//绝对路径+图片名称
image = cv::imread("E:\\QT Project\\OpenCV\\rose.png");
if (image.empty())
{
std::cout << "Can’t loading images. " << std::endl;
return -;
}
cv::namedWindow("Original Image");
cv::imshow("Original Image", image);
cv::waitKey();
return ;
}
加载图片测试代码段
详解QT5.10.0搭载OpenCV3.4.0环境配置步骤说明的更多相关文章
- 图文详解如何搭建Windows的Android C++开发环境
原地址:http://www.apkbus.com/android-18595-1-1.html //================================================= ...
- ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置
原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...
- 【python】详解numpy库与pandas库axis=0,axis= 1轴的用法
对数据进行操作时,经常需要在横轴方向或者数轴方向对数据进行操作,这时需要设定参数axis的值: axis = 0 代表对横轴操作,也就是第0轴: axis = 1 代表对纵轴操作,也就是第1轴: nu ...
- 详解Window10下使用IDEA搭建Hadoop开发环境
前言 经过三次重装,查阅无数资料后成功完成hadoop在win10上实现伪分布式集群,以及IDEA开发环境的搭建.一步一步跟着本文操作可以避免无数天坑. 下载安装Hadoop 下载安装包 进入官网下载 ...
- 详解eNSP下的单臂路由模拟实验配置
不同VLAN之间的通信可以通过两种方式:单臂路由和三层交换机.其中,单臂路由是通过路由子接口,交换机的某个端口以trunk的方式与路由器的某个端口相连,同时路由器的链接端口配置子接口,配置子接口承载的 ...
- Windows下OpenCV 3.1.0 在 Qt Creator 4.0.2 (Qt 5.7.0 MinGW) 中的开发环境配置
2017-2-23 Update: 修改并添加了部分细节 最近正在学习OpenCV ,为毕业设计做准备.Windows版本的OpenCV都默认提供对VS的支持,其在VS中的配置比较简单,网上也有大批教 ...
- 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)
环境配置 / Environment Setup 基于Python开发的 gVim 环境配置(Windows) 使用方式参考 Vim 的使用. 1 基于vundle进行配置 Vim有多个扩展管理器, ...
- QT从入门到入土(一)——Qt5.14.2安装教程和VS2019环境配置
引言 24岁的某天,承载着周围人的关心,一路南下.天晴心静,听着斑马,不免对未来有些彷徨.但是呢,人生总要走陌生的路,看陌生的风景,所幸可以听着不变的歌,关心自己的人就那么多.就像是对庸常生活的一次越 ...
- Spring NamedParameterJdbcTemplate详解(10)
NamedParameterJdbcTemplate和JdbcTemplate功能基本差不多.使用方法也类型.下面具体看下代码. db.properties 1 jdbc.user=root 2 jd ...
随机推荐
- 微信小程序 页面跳转传递数据
点击view 跳转页面 <view class="album_image" data-album-obj="{{item}}" bindtap=" ...
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...
- 【Learning】最小点覆盖(二分图匹配) 与Konig定理证明
(附一道例题) Time Limit: 1000 ms Memory Limit: 128 MB Description 最小点覆盖是指在二分图中,用最小的点集覆盖所有的边.当然,一个二分图的最小 ...
- Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记
Week1: Machine Learning: A computer program is said to learn from experience E with respect to some ...
- jquery源码分析之一前言篇
1.问:jquery源码分析的版本是什么? 答:v3.2.1 2.问:为什么要分析jquery源码? 答:javascript是一切js框架的基础,jquery.es6.vue.angular.rea ...
- raw文件系统
简介 RAW文件系统是一个没有被NT文件系统(FAT或NTFS)格式化的磁盘分区(win8默认用的是RAW文件系统). 2定义 分区显示RAW文件系统的直接原因,是由于文件系统不被操作系统识别.此时在 ...
- JAVA代码发送邮件示例和解释(二)
之前有使用过一次在程序中发邮件的功能,也写了一篇相关的笔记,当时使用的是163邮箱,经过测试多个163账号都是可行的.但是最近把账号换成中国移动@chinamobilesz.com这种结尾的时候,却一 ...
- R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错
笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...
- 提取DirectShow中视频采集的数据
DirectShow中,数据流(Data Flow)都是依次流过各个Filter的.它对数据的管理也有自己的方法,而且并没有向用户提供一个统一的接口,供用户操作数据流.这里以提取视频采集在的每帧为位图 ...
- 把连续动态bmp转换为avi
把动态bmp24转换为avi BYTE tmp_buf[1024*768*4]; //生成avi void BMPtoAVI(CString szAVIName, CString strBmpDir) ...