OpenCV-3.4.2基于Qt-5.10.1的编译

由于本人在使用CMake和MinGW编译OpenCV是遇到了很多问题,在这里记录下来。至于所需软件的安装和相应环境变量的设置,网上有很多详细的教程,这里不再重复。

软件环境:
⦁ Windows-10-64bit
⦁ Qt-5.10.1
⦁ OpenCV-3.4.2
⦁ CMake-3.11.1

添加 MinGW 到环境变量
为系统变量 Path 添加 D:\Qt\Qt5.10.1\Tools\mingw530_32\bin

使用 CMake 生成 OpenCV 的 Makefile:
打开 cmake-gui,设置源码和生成路径:
⦁ Where is the source code: D:\OpenCV\opencv-3.4.2
⦁ Where to build the binaries: F:\Others\OpenCV

点击 Configure,设置编译器:
⦁ Specify the generator for this project: MinGW Makefiles
⦁ Specify native compilers
然后:
⦁ Compilers C: D:\Qt\Qt5.10.1\Tools\mingw530_32\bin\gcc.exe
⦁ Compilers C++: D:\Qt\Qt5.10.1\Tools\mingw530_32\bin\g++.exe
最后点:Finish

预处理:
修改D:\OpenCV\opencv-3.4.2\modules\videoio\src\cap_dshow.cpp文件,在#include "DShow.h"这行的上面加一行#define NO_DSHOW_STRSAFE,如:
#define NO_DSHOW_STRSAFE
#include "DShow.h"

编译配置:
⦁ 勾选 WITH_OPENGL
⦁ 勾选 WITH_QT
⦁ 勾选 WITH_OPENMP(用于并行计算)
⦁ 勾选 ENABLE_CXX11
⦁ 不勾选 ENABLE_PRECOMPILED_HEADERS
⦁ 不勾选 WITH_IPP
⦁ 不勾选 WITH_TBB(OpenCV-3.4.2版本出现的问题,之前的版本需要看情况)
⦁ 不勾选 WITH_MSMF(同上)
点击 Configure,Generate 生成 Makefile

编译 OpenCV:
在build目录空白处按住快捷键win+R,运行cmd
打开终端进行编译:mingw32-make (之前需要设置环境变量)
该过程一般需要很长时间,接近一个小时

装载Opencv:
mingw32-make install
该命令会将编译后生成的头文件及动态库文件复制到目录:“F:\Others\OpenCV\install”。该目录包括运行OpenCV程序所需要的全部资源。

参考链接:
https://blog.huihut.com/2017/12/03/CompiledOpenCVRunInQt/
https://blog.csdn.net/quxing10086/article/details/79576085
https://blog.csdn.net/davidhopper/article/details/78757572
http://answers.opencv.org/question/192758/compile-error-when-compiling-for-windows-341-dev/

OpenCV-3.4.2基于Qt-5.10.1的编译的更多相关文章

  1. 基于Qt 5.9.8,编译Qtxlsx

    1.源码下载地址:https://github.com/dbzhang800/QtXlsxWriter 2.下载并安装编译时需要的工具 Perl:https://www.perl.org/get.ht ...

  2. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  3. 基于QT的一个简易的安防

    工程描述 opencv2.4.8 QT5 背景建模后,当有异物入侵时,把入侵的帧写到视频文件 使用BackgroundSubtractorMOG2背景建模 程序基于QT对话框 .pro #------ ...

  4. 基于QT开发的第三方库

    基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库   目录(?)[+]   文章来源:http://blog.csdn.net ...

  5. 基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统

      一:源起       1.何为CB/S的应用程序       C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与服务端通信,完成一定的 ...

  6. 【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东 ...

  7. 【Qt编程】基于Qt的词典开发系列<四>--无边框窗口的缩放与拖动

    在现在,绝大多数软件都向着简洁,时尚发展.就拿有道的单词本和我做的单词本来说,绝大多数用户肯定喜欢我所做的单词本(就单单界面,关于颜色搭配和布局问题,大家就不要在意了). 有道的单词本: 我所做的单词 ...

  8. 基于Qt的wifi智能小车的制作(一)

     基于Qt的wifi智能小车的制作(一) 好久不写博客了,真的是有点惭愧了.翻开上一次的博客,到现在已经2个多月了,只能说是自己太懒惰了!忙是另一回事!趁今天晚上有点时间回顾下这一段时间的收获以及做的 ...

  9. 采用Qt快速绘制多条曲线(折线),跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)

    QCustomPlot是一个开源的基于Qt的第三方绘图库,能够绘制漂亮的2D图形. QCustomPlot的官方网址:https://www.qcustomplot.com/ 从官网下载QCustom ...

随机推荐

  1. Python集合字典运算符

    1.集合2.字典3.运算符优先级 1.集合 创建:{} set([]) 注意:创建空的集合要用set()   特点:元素唯一,无序   运算: & 交集 | 并集 - 差集   方法:   s ...

  2. C语言中typedef的解释_2

    typedef工具是一个高级数据特性.利用typedef可以为某一类型自定义一个新的名称.这样可以提高程序的可读性,可移植性,向用户表明特定用途. typedef没有创建任何新的类型,它只是为某个已存 ...

  3. jQuery中animate()方法以及$('body').animate({"scrollTop":top})不被Firefox支持问题的解决

    $("body").animate({"scrollTop":top}): 只被chrome支持,而不被Firefox支持 $("html" ...

  4. tomcat 普通用户报错方案

    Tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 一眼就能看出来是jdk的环境有问题,但是用了 ...

  5. Go语言基础之5--数组(array)和切片(slince)

    一.数组(array) 1.1 数组定义 1)含义: 数组是同一类型的元素集合. 数组是具有固定长度并拥有零个或者多个相同数据类型元素的序列. 2)定义一个数组的方法: var 变量名[len] ty ...

  6. oracle截取字符串,定索引

    转载:https://www.cnblogs.com/qmfsun/p/4493918.html 使用Oracle中Instr()和substr()函数: 1 2 3 4 5 6 7 8 9 10 1 ...

  7. layim和Gatewayworker组合的实时通讯

    今天是第二次重新开发使用layim和Gatewayworker,但是由于第一次没有写文档,导致这一次就跟第一次一样,一头雾水,重新开始看文档研究,导致遇到一个瓶颈,怎么都过不去.所以,以这篇文章开始, ...

  8. JOIN 和 NULL

    NULL值得数据出现在数据库发展的最初阶段的确给开发和使用者带来了很大的便利,这是因为它为我们节省了太多的磁盘空间,而且在那个年代磁盘是相当昂贵的.但是随着科技的发展,硬件系统的改进突飞猛进,NULL ...

  9. Kafka Intro - Configuration

    #Notes: /opt/kafka/config/zookeeper.properties sample # the directory where the snapshot is stored.d ...

  10. 牛客网Java刷题知识点之字节流练习之从A处复制文本文件到B处(FileReader、FileWriter )、复制文本文件的原理图解

    不多说,直接上干货! CopyTextTest.java package zhouls.bigdata.DataFeatureSelection.test; import java.io.FileRe ...