c++ 编译添加dll_使用MinGW编译OpenCV4源码与配置使用演示
点击上方蓝字关注我们
微信公众号:OpenCV学堂
关注获取更多计算机视觉与深度学习知识
QT在Windows上安装好之后,常规会两种编译器选择分别是:
-VS2015/2017/2019....-mingw
因为我安装了VS2015,所以一直是默认VS来编译,但是发现当从VS编译切换到mingw时候,OpenCV的windows版本就无法正确的使用了。这个时候要求首先通过mingw来编译OpenCV的源码,重新生成OpenCV库文件与dll文件。本文就详细记录了这个过程。而且最后通过编译好的OpenCV集成配置QT开发环境,实现了一个简单的测试程序。
软件版本与环境配置
版本信息
Windows10 64位QT5.13 64位OpenCV4.2CMake3.17.1
下载地址:
https://opencv.org/opencv-4-2-0/ https://cmake.org/
环境配置
在安装好QT,CMake与OpenCV下载解压缩之后,首先到QT的目录下,找到mingw编译工具的bin目录,添加到系统环境变量中去,本人安装好的QT中mingw工具的bin目录路径如下:
D:\Qt\Qt5.13.1\Tools\mingw730_64\bin
编译OpenCV源码
编译OpenCV源码主要分为如下几步:
01
cmake配置与生成
双击打开安装好的cmake
选择好souce路径与build路径,本人的分别为:
D:/opencv-4.2.0/opencv/sourcesD:/opencv-4.2.0/opencv/newbuild
然后点击 【configure】,就会弹出如下对话框,请选择mingw makefiles
然后分别设置
C编译器D:\Qt\Qt5.13.1\Tools\mingw730_64\bin\gcc.exe C++编译器D:\Qt\Qt5.13.1\Tools\mingw730_64\bin\g++.exe
运行完成之后,参见如下选项进行配置
- 勾选 WITH_OPENGL- 勾选 WITH_OPENMP- 勾选 BUILD_opencv_world- 不勾选 WITH_OPENCL_D3D11_NV
然后再点击【generate】按钮,执行完成即可。
注意
这个过程中你最有可能遇到的错误就是无法下载ffmpeg库的问题,解决方法也很容易,让可以下载的人给你下载,然后直接copy到你的opencv\sources\3rdparty\ffmpeg目录下即可。然后再次点击【generate】按钮即可。
02
生成安装文件
cmake完成之后,打开cmd,切换到build目录下,首先执行如下的命令行参数
mingw32-make -j 8
回车之后,就看到如下开始执行了,画面如下:
大概5~10min左右(取决电脑速度)如果没有报错,就会到达100%完成。然后执行下一个命令行参数
mingw32-make install
大概在几十秒即可很快执行完成,执行完成之后你就会在这个目录得到编译好的库与dll文件。
D:\opencv-4.2.0\opencv\newbuild\install
很直接的把生成的dll所在路径添加到环境变量中,这里为:
D:\opencv-4.2.0\opencv\newbuild\install\x64\mingw\bin
使用OpenCV+QT实现图像显示
通过一个简单的OpenCV读取图像,在QT中QLabe显示来验证上述编译好的库可以使用。直接通过QT Creator来新建一个QT Application程序,导入OpenCV库依赖(不知道怎么操作,请看结尾的链接,通过视频学习即可!),然后在mainwindow.cpp中实现如下代码:
#include "mainwindow.h"
记得创建项目的选择编译器为mingw啊,然后选择构建为release。直接运行,显示如下:
最后怕写的不太好,给大家录了个实操的视频,教大家如下一步一步基于QT搭建OpenCV开发环境。
B站视频版本
https://www.bilibili.com/video/BV1Za4y1v7ra
推荐阅读
OpenCV4系统化学习路线图-视频版本!
五分钟搞定OpenCV4 + QT5集成与代码测试
OpenCV4.2 + OpenVINO2020安装配置与应用演示
OpenVINO深度学习推理框架 开发技术系列文章汇总
单应性矩阵应用-基于特征的图像拼接
OpenCV图像拼接改进算法之完美拼接
干货 | 基于特征的图像配准用于缺陷检测
OpenCV | 二值图像分析的技巧都在这里
OpenCV二值图像分析之形态学应用技巧
图像色彩空间与应用转换
五分钟学会C++高效图表绘制神器调用
没想到图像直方图有这么多应用场景
基于灰度共生矩阵(GLCM)的图像纹理分析与提取
OpenCV中一个最容易搞错的形态学操作
OpenCV+OpenVINO实现人脸Landmarks实时检测
OpenCV4+OpenVINO实现图像的超分辨
利用单应性矩阵实现文档对齐显示
c++ 编译添加dll_使用MinGW编译OpenCV4源码与配置使用演示相关推荐
- 编译32位_玩转Android10源码开发定制(11)内核篇之安卓内核模块开发编译
一. 开发前期准备 本文中使用的是linageOs源码中下载的oneplus3 安卓10内核源码进行研究测试.交叉编译链使用的是linageOs源码中的交叉编译链. lineageOs源码中onepl ...
- android系统源码7.1.2_r8下载,编译,运行到nexus5X上,修改源码并编译SDK进行测试
一,学习android系统源码下载,编译的作用 1,可以自己 DIY 自己的rom系统,从系统层面,宏观的加深理解 android系统 2,编译自己的 userdebug(原生root权限) rom, ...
- 基于Qt5.14.2和mingw的Qt源码学习(三) — 元对象系统简介及moc工具是如何保存类属性和方法的
基于Qt5.14.2和mingw的Qt源码学习(三) - 元对象系统简介及moc工具是如何保存类属性和方法的 一.什么是元对象系统 1.元对象系统目的 2.实现元对象系统的关键 3.元对象系统的其他一 ...
- c++ 编译添加dll_Windows下osg编译
一.准备工作 1.1 资料准备 1.2 环境说明 二.编译准备 2.1 目录树 2.2 ffmpeg插件编译问题处理 三.cmake配置 四.编译 五.环境变量配置 六.OSG项目 6.1 创建并配置 ...
- linux源码编译安装lamp环境搭建,linux下源码包编译安装LAMP环境
1.下载所需的源码包 Httpd-2.4.10 apr-1.5.1 apr-util-1.5.3 pcre-8.33(这些均可在Apache官网进行下载) Mysql-5.5.39 php ...
- vs2008编译QT开源项目--太阳神三国杀源码分析(一) 项目编译及整体分析
请参看 http://tieba.baidu.com/f?kz=1508964881 按照上面的网址教程,下载三国杀源码,swig工具,并下载最新的QT4.8.2 for vs2008.我本机已经安装 ...
- 微信小程序 wxapkg 反编译 获得微信小游戏跳一跳源码
前言 昨天 V2EX 上的一篇通过抓包来获取微信跳一跳源码的文章走红,文章连接点击这里 我也在通过文章中的方式进行了抓包,但是并未探测到小游戏的下载连接,可能微信对此已经进行了修复.而且上文中提供的下 ...
- 5单个编译总会编译全部_玩转Android10(五)源码编译开发中常用命令
源码开发编译中,熟练掌握常用命令,可以提高开发工作效率.Android源码中,将相关的命令分为如下几类: 1.初始化源码编译环境 初始化编译环境,为后续提供如lunch.make.xxgrep.god ...
- android源码编译 简书,android学习笔记之源码编译
编译环境 1.需要Ubuntu 64bit,建议Ubuntu14.04 64-bit 2.安装openJDK7 $ sudo apt-get update $ sudo apt-get install ...
最新文章
- 基于HTML5 Canvas实现工控2D叶轮旋转
- ios wkwebview弹框_iOS WKWebView的javascript alert 不弹的解决方案
- 【RecyclerView】 八、RecyclerView.ItemDecoration 条目装饰 ( onDraw 和 onDrawOver 绘制要点 )
- python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...
- 【机器学习算法专题(蓄力计划)】三、机器学习中的概率论基础精讲
- Tomcat(三):日志
- linux 字符设备驱动cdev
- Android开发工具Android Studio、Android SDK和Genymotion完全配置
- ssh远程登陆 Ubuntu虚拟机出错,配置ssh服务-转
- 时间序列分析导论书摘:时间预处理-时序变换
- java毕向东helloworld_毕向东java基础课学习笔记2——Hello world
- python 裁判文书网_中国裁判文书网 爬虫求助
- 互联网周刊eNet研究院:2018中国数字化转型最佳解决方案TOP100
- ADO与ADO.NET的区别
- 危机2.0时代,企业任重而道远
- java小时钟实验报告_JAVA实验报告(运用JavaFx实现时钟动画).doc
- 关于中医把脉的一点想法
- wifi一到晚上服务器无响应,wifi到晚上网速很慢(为啥一到晚上网速就慢)
- 线性空间(向量空间)
- Spark Shell 的使用
热门文章
- PHPstorm如何导入字体主题
- (二)Flask 学习 —— 模板
- 关联与依赖区别理解(原)
- 使用springMVC提供的CommonsMultipartResolver文件解析器,实现文件轻松上传
- UNetbootin | 轻松制作Linux/BSD安装引导U盘
- java异常机制throwable
- LeetCode简单题目(#203 #204 # #205 #206 #217 #219)-6道(序列、数字)
- java for循环效率优化_java 优雅代码for循环 之性能调优
- navicat for mysql 数据传输_如何利用Navicat for MySQL数据库进行数据传输
- 前端flv.js设置缓冲时间和大小_好程序员web前端细解cookie那些事