QT5.12.9 通过MinGW64 / MinGW32 cmake编译Opencv4.5.1

一、安装前准备:

1.安装QT,QT5.12.9官方下载链接:https://download.qt.io/archive/qt/5.12/5.12.9/

QT安装教程:https://blog.csdn.net/Mark_md/article/details/108614209

如果电脑是64位就编译器选择MinGW64,32位就选择MinGW32,我的是MinGW64。

2.opencv源码下载:https://github.com/opencv/opencv/tags

下载之后将源码文件夹名称改为sources也可以改为其他的,方便之后寻找使用,同时新建一个build空文件夹:

3.安装cmake:https://cmake.org/download/

4.配置环境变量:

配置MinGW环境变量,将上次安装在qt的mingw的bin路径添加到系统环境变量Path里

例:我的位置是D:\Programs\Qt\Qt5.12.12\Tools\mingw730_64\bin

那么:

二、Cmake配置

2.1第一次configure

打开cmake-gui,选择源码路径和刚才新建的文件夹的路径,勾选Advanced然后点击一下configure

弹出的窗口CMake会自动选择本机已经安装的目标编译器,我们上面配置了MinGW环境,所以会默认使用MinGW Makefiles .单击“Finish”,然后就会开始执行生成,第一次configure大概是这样子:

2.2第二次configure

然后我们先去勾选with_qt 和 with_opengl取消勾选 opencv_enable_allocator_stats:

with_qt

with_opengl

取消勾选和python有关的所有选项,(python用到的话直接终端 pip install -i https://pypi.douban.com/simple opencv-python 就OK)

点击configure,一般会报错,因为还没配置qt5,因为我们最终目的是编译opencv给qt使用,故需要配置QT的路径

2.3第三次configure

输入qt5,配置如下图片:改为自己安装QT的位置,我的是E:/QT/5.12.9/mingw73_64/lib/cmake/***

设置 QT_MAKE_EXECUTABLE 为 

E:\Qt5.9.3\5.9.3\mingw53_32\bin\qmake.exe

备注:此项没有,需要点击Add Entry添加

Name:QT_MAKE_EXECUTABLE ,Type: PATH ,Value:E:\Qt5.9.3\5.9.3\mingw53_32\bin\qmake.exe


    设置 Qt5Concurrent_DIR 为 E:/QT/5.12.9/mingw73_64/lib/cmake/Qt5Concurrent
    设置 Qt5Core_DIR 为 E:/QT/5.12.9/mingw73_64/lib/cmake/Qt5Core
    设置 Qt5Gui_DIR 为 E:/QT/5.12.9/mingw73_64/lib/cmake/Qt5Gui
    设置 Qt5Test_DIR 为 E:/QT/5.12.9/mingw73_64/lib/cmake/Qt5Test
    设置 Qt5Widgets_DIR 为E:/QT/5.12.9/mingw73_64/lib/cmake/Qt5Widgets
    设置 Qt5OpenGL_DIR 为 E:/QT/5.12.9/mingw73_64/lib/cmake/Qt5OpenGL

再次点击 “Configure”,再次配置

若出现ffmpeg的下载报错,不处理的话将会导致我们的opencv无法处理视频,首先在sources里找到对应的文件

用记事本打开ffmpeg.cmake文件修改:在加量、亮那句话前加:

GitHub Proxy 代理加速

改完后保存,再次点击configure,直到选项框没有红色出现为止后,点击generate生成makefile

三、mingw32-make编译

之后进入我i们build文件夹下,在文件路径处输入‘cmd’,然后按回车

进入终端:在弹出来的cmd中,输入

mingw32-make -j 4 #4是4线程 可以加快编译速度 视电脑性能而定

结束后执行安装:

mingw32-make install

安装后将安装路径“A:\Haitun2\sensorsdata\Camera\opencv\build\install\x64\mingw\bin”添加到系统变量path,注意自己的文件位置。然后重启

四、QT使用刚才编译的QT:

在.pro文件里加入如下代码:

#opencv
win32{
INCLUDEPATH += A:\Haitun2\sensorsdata\Camera\opencv\build\install\include
#LIBS += A:\Haitun2\sensorsdata\Camera\opencv\build\install\x64\mingw\bin\libopencv_*.dll
LIBS += A:\Haitun2\sensorsdata\Camera\opencv\build\lib\libopencv_*.a
}

测试程序1,在main.cpp里,使用opencv的imshow来显示摄像头视频

#include <QApplication>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{QApplication a(argc, argv);VideoCapture cap;if(!cap.open(0)){//打开0端口摄像头return -1;}else{Mat img;while (1) {if(!cap.read(img)){continue;}else{imshow("img",img);cv::waitKey(1);}}}return a.exec();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/372376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车载测试之-CANoe创建仿真工程

在现代汽车工业中&#xff0c;车载测试是确保车辆电子系统可靠性和功能性的关键环节。而使用CANoe创建仿真工程&#xff0c;不仅能够模拟真实的车辆环境&#xff0c;还能大大提升测试效率和准确性。那么&#xff0c;CANoe是如何实现这些的呢&#xff1f; 车载测试中&#xff0…

使用Keil 点亮LED灯 F103ZET6

1.新建项目 不截图了 2.startup_stm32f10x_hd.s Keil\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\Source\ARM 搜索startup_stm32f10x_hd.s 复制到项目路径&#xff0c;双击Source Group 1 3.项目文件夹新建stm32f10x.h&#xff0c; 新建文件main.c #include "stm32f10x…

【Python】不小心卸载pip后(手动安装pip的两种方式)

文章目录 方法一&#xff1a;使用get-pip.py脚本方法二&#xff1a;使用easy_install注意事项 不小心卸载pip后&#xff1a;手动安装pip的两种方式 在使用Python进行开发时&#xff0c;pip作为Python的包管理工具&#xff0c;是我们安装和管理Python库的重要工具。然而&#x…

Linux 内核 GPIO 用户空间接口

文章目录 Linux 内核 GPIO 接口旧版本方式&#xff1a;sysfs 接口新版本方式&#xff1a;chardev 接口 gpiod 库及其命令行gpiod 库的命令行gpiod 库函数的应用 GPIO&#xff08;General Purpose Input/Output&#xff0c;通用输入/输出接口&#xff09;&#xff0c;是微控制器…

软件产品必须进行软件测试吗?软件产品测试报告重要性介绍

在现代社会&#xff0c;软件已经渗透到我们生活的方方面面&#xff0c;软件的质量对我们的生活和工作有着重要的影响。因此&#xff0c;软件测试是非常重要的。 软件产品进行测试主要有以下好处&#xff1a;随着软件的复杂性增加&#xff0c;软件中的缺陷也越来越多&#xff0…

Open3D 计算点云的平均密度

目录 一、概述 1.1基于领域密度计算原理 1.2应用 二、代码实现 三、实现效果 2.1点云显示 2.2密度计算结果 一、概述 在点云处理中&#xff0c;点的密度通常表示为某个点周围一定区域内的点的数量。高密度区域表示点云较密集&#xff0c;低密度区域表示点云较稀疏。计算…

jmeter-beanshell学习5-beanshell加减乘除运算

我用到的场景是计算金额&#xff0c;所以主要以金额为主&#xff0c;感觉这部分有点麻烦&#xff0c;直接写遇到的几个坑&#xff0c;就不演示解决的过程了。 1.最早写了个两数相减&#xff0c;但是小数精度容易出现问题。比如1-0.010.989999997这种情况&#xff0c;随便写的几…

DDD架构

1.DDD架构的概念&#xff1a; 领域驱动设计&#xff08;Domain-Driven Design, DDD&#xff09;是一种软件设计方法&#xff0c;旨在将软件系统的设计和开发焦点集中在领域模型上&#xff0c;以解决复杂业务问题 2.DDD架构解决了什么问题: 在以前的mvc架构种&#xff0c;三层结…

Linux系统下的用户管理模式

Linux系统下的用户管理模式 本文以属于Linux系统基本概念&#xff0c;如果以查找教程教程&#xff0c;解决问题为主&#xff0c;只需要查看本文后半部分。 如需要系统性学习请查看本文前半部分。 文章目录 Linux系统下的用户管理模式1. Linux下用户的概念2. 创建不同类型的用户…

Johnson Counter

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 参考代码 描述 请用Verilog实现4位约翰逊计数器&#xff08;扭环形计数器&#xff09;&#xff0c;计数器的循环状态如下。 电路的接口如下图所示。 输入描述&#xff1a; input clk , input …

第一百四十九节 Java数据类型教程 - Java子字符串、字符串转换

Java数据类型教程 - Java子字符串 获取子字符串 我们可以使用substring()方法来获取字符串的子部分。 我们可以将开始索引作为参数&#xff0c;并返回一个从开始索引开始到字符串结尾的子串。 我们还可以将开始索引和结束索引作为参数。 它返回从开始索引开始的子字符串和小…

[数仓]七、离线数仓(PrestoKylin即席查询)

第1章 Presto 1.1 Presto简介 1.1.1 Presto概念 1.1.2 Presto架构 1.1.4 Presto、Impala性能比较 Presto、Impala性能比较_presto和impala对比-CSDN博客 测试结论:Impala性能稍领先于Presto,但是Presto在数据源支持上非常丰富,包括Hive、图数据库、传统关系型数据库、Re…

记录一次Nginx的使用过程

一、Docker安装配置nginx 1.拉取镜像 docker pull nginx2.创建挂载目录 启动前需要先创建Nginx外部挂载目录文件夹 主要有三个目录 conf&#xff1a;配置文件目录log&#xff1a;日志文件目录html&#xff1a;项目文件目录&#xff08;这里可以存放web文件&#xff09; 创建挂…

云计算【第一阶段(28)】DNS域名解析服务

一、DNS解析的定义与作用 1.1、DNS解析的定义 DNS解析&#xff08;Domain Name System Resolution&#xff09;是互联网服务中的一个核心环节&#xff0c;它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住…

鸿蒙小练习

bean对象 export class BannerImage{id:numberurl:stringtargetUrl:stringproductId:numberconstructor(id: number, url: string, targetUrl: string, productId: number) {this.id idthis.url urlthis.targetUrl targetUrlthis.productId productId} }export class d…

乐鑫ESPC3 ESP8685 WiFi蓝牙模块透传程序设置教程,抛开繁琐AT指令,简单Web页面配置,即可实现透传

完整文档请下载规格书 TTL-WiFi 透传产品 使用手册 一. 产品概述 二. 接口定义 三. 软件透传WEB配置使用说明 3.1 STATUS配置界面 3.2 MODULE配置界面 n Serial&#xff08;串口配置&#xff09; n WiFi&#xff08;WiFi配置&#xff09; n Networks&#xff08;网络…

mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>

文章目录 引言I 使用xml 原生转义的方式进行转义II 使用 <![CDATA[ 内容 ]]>引言 应用场景:查询时间范围 背景:在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 <![CDATA[]]> 比 转义符 来的繁琐 <![CDATA[]]> 表示xml解析器忽略…

怎样优化 PostgreSQL 中对日期时间范围的模糊查询?

文章目录 一、问题分析&#xff08;一&#xff09;索引未有效利用&#xff08;二&#xff09;日期时间格式不统一&#xff08;三&#xff09;复杂的查询条件 二、优化策略&#xff08;一&#xff09;使用合适的索引&#xff08;二&#xff09;规范日期时间格式&#xff08;三&a…

Hadoop简明教程

文章目录 关于HadoopHadoop拓扑结构Namenode 和 Datanode 基本管理启动Hadoop启动YARN验证Hadoop服务停止Hadoop停止HDFS Hadoop集群搭建步骤准备阶段Java环境配置Hadoop安装与配置HDFS格式化与启动服务测试集群安装额外组件监控与维护&#xff1a; 使用Docker搭建集群使用Hado…

Chain-of-Verification Reduces Hallucination in Lagrge Language Models阅读笔记

来来来&#xff0c;继续读文章了&#xff0c;今天这个是meta的研究员们做的一个关于如何减少LLM得出幻觉信息的工作&#xff0c;23年底发表。文章链接&#xff1a;https://arxiv.org/abs/2309.11495 首先&#xff0c;这个工作所面向的LLM的问答任务&#xff0c;是list-based q…