QT+OpenCV配置

news2024/11/27 4:38:59

QT+OpenCV配置

  • 1 下载CMake
  • 2 安装CMake
  • 3 下载OPenCV
  • 4 配置环境变量
    • 4.1 配置QT环境变量
    • 4.2 配置CMake环境变量
    • 4.3 重启电脑生效
  • 5 CMake编译OPenCV
    • 5.1 解决报错
  • 6 测试

1 下载CMake

链接:https://cmake.org/download/

在这里插入图片描述

2 安装CMake

在这里插入图片描述
在这里插入图片描述

3 下载OPenCV

链接:https://opencv.org/
在这里插入图片描述
在这里插入图片描述
新建两个文件:
opencv_source_4.7.0:存放OPenCV的源码
opencv_build_4.7.0:存放OPenCV编译出来的东西

在这里插入图片描述
在这里插入图片描述

4 配置环境变量

4.1 配置QT环境变量

将你使用的编译器加入到环境变量中,我使用的是mingw 64bit,步骤如下:

  1. 找到QT编译器路径
    在这里插入图片描述
  2. 加入到环境变量中

4.2 配置CMake环境变量

在这里插入图片描述
在这里插入图片描述

4.3 重启电脑生效

5 CMake编译OPenCV

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Compilers路径

C:D:\qt\Tools\mingw810_64\bin\gcc.exe
C++:D:\qt\Tools\mingw810_64\bin\g++.exe

在这里插入图片描述

5.1 解决报错

  1. CMAKE_MAKE_PROGRAM的value修改为对用的makeD:/qt/Tools/mingw810_64/bin/mingw32-make.exe
    在这里插入图片描述
  2. Configuring done之后,还会出现报错。勾选WITH_OPENGL和WITH_QT
    在这里插入图片描述
  3. 查看报错内容发现ffmpge下载报错,如下图:
    在这里插入图片描述
    解决方法:
    进入网址:https://github.com/opencv/opencv_3rdparty/
    在这里插入图片描述
    点击readme,输入ffmpeg,跟选择对应的版本:

(在OpenCV源码路径G:\opencv_source_4.7.0\opencv\sources\3rdparty\ffmpeg下的ffmpeg.cmake文件可以看到该OpenCV版本需要的ffmpeg版本,一般在该文件的第一行)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载后解压,进入ffmpeg文件夹:
在这里插入图片描述
将opencv_videoio_ffmpeg_64.dll、opencv_videoio_ffmpeg.dll、ffmpeg_version.cmake三个文件拷贝到:G:\opencv_source_4.7.0\opencv\sources\.cache\ffmpeg

依次将下载的三个文件的文件名改为对应的这三个文件名即可。(文件名的前半截是该文件的hash码,不能复制错了)

在这里插入图片描述
点击configure,依然会报错:
在这里插入图片描述
4. 修改以下内容
在这里插入图片描述

此时应该没错误了。
点击configure,然后点击generate

打开生成目录:
在这里插入图片描述

将鼠标放在该文件夹界面内,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),进入Windows Powershell,输入 D:/qt/Tools/mingw810_64/bin/mingw32-make.exe

会编译报错如下:

  1. mingw32-make: *** [Makefile:165: all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:1878: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make[1]: *** Waiting for unfinished jobs....
[ 33%] Built target IlmImf
mingw32-make: *** [Makefile:165: all] Error 2

在这里插入图片描述
解决办法:
cmake界面按钮: add Entry —>>> BOOL —>>> OPENCV_VS_VERSIONINFO_SKIP 打钩
在这里插入图片描述
出错了把之前的make clean掉
在这里插入图片描述

安装 :D:/qt/Tools/mingw810_64/bin/mingw32-make.exe install

加入环境变量:G:\opencv_build_4.7.0\install\x64\mingw\bin

6 测试

  1. pro文件中加入
INCLUDEPATH += G:\opencv_build_4.7.0\install\include
LIBS += G:\opencv_build_4.7.0\lib\libopencv_*.a
  1. MainWindow中加入
  Mat image=imread("1.png",1);//一定要使用绝对路径,其他可以回报错
    namedWindow( "Display window", WINDOW_AUTOSIZE );
                                           imshow( "Display window", image );

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本地elasticsearch中文分词器 ik分词器安装及使用

ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词。 ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词,并且支持用户配置自…

网络设备中VRRP协议和Linux服务器中keepalived的两个区别

1、什么是VRRP?keepalived又是什么? VRRP全称是Virtual Router Redundancy Protocol,即虚拟路由冗余协议。它的主要目的是在一个网络中提供冗余的路由。当一个三层网络设备或服务器出现故障时,VRRP可以确保网络仍能正常工作。VRR…

在.NET Core中正确使用HttpClient的方式

HttpClient 是 .NET Framework、.NET Core 或 .NET 5以上版本中的一个类,用于向 Web API 发送 HTTP 请求并接收响应。它提供了一些简单易用的方法,如 GET、POST、PUT 和 DELETE,可以很容易地构造和发送 HTTP 请求,并处理响应数据。…

算法之时间复杂度---数据结构

目录 前言: 1.时间复杂度 1.1时间复杂度的理解 1.2规模与基本操作执行次数 1.3大O渐进表示法 1.4计算基本操作的次数 2.常见的时间复杂度及其优劣比较 ❤博主CSDN:啊苏要学习 ▶专栏分类:数据结构◀ 学习数据结构是一件有趣的事情&…

2023五一数学建模B题完整模型代码【原创首发】

已经完成五一数学建模全部内容,大家可以文末查看!!供参考使用! 摘要 随着网络购物的普及和发展,快递行业需求持续增长,对于快递公司来说,准确预测运输需求以及合理规划运输线路和仓库布局变得…

分享一个有意思的键盘,我们就只会ctrl c+v

先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>* {border: 0;box-sizing: border-box;margin: 0;padding: 0;}:roo…

【pyTorch学习笔记④】PyTorch基础·中篇

文章目录 三、Numpy与Tensor3.Tensor的索引4.Tensor的广播机制5.逐元素操作6.归并操作7.比较操作8.矩阵操作9.PyTorch与Numpy的比较 相关推荐 三、Numpy与Tensor 3.Tensor的索引 &#xff08;1&#xff09;item&#xff1a;若Tensor为单元素&#xff0c;则返回标量&#xff0…

驱动开发:通过MDL映射实现多次通信

在前几篇文章中LyShark通过多种方式实现了驱动程序与应用层之间的通信&#xff0c;这其中就包括了通过运用SystemBuf缓冲区通信&#xff0c;运用ReadFile读写通信&#xff0c;运用PIPE管道通信&#xff0c;以及运用ASYNC反向通信&#xff0c;这些通信方式在应对一收一发模式的时…

【Java笔试强训 8】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;两种排…

【Java笔试强训 6】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;不要二 …

权限提升:本地权限提升.(AT || SC || PS )

权限提升&#xff1a;本地权限提升. 权限提升简称提权&#xff0c;由于操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;比如通过 Web 漏洞拿到的是 Web 进程的权限&#xff0c;往往 Web 服务都是以一个权限很低的账号启动的&#xff0c;因此通过 Web…

JavaScript用map实现Hashmap

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;数据结构与算法 &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; 文章目录 正如我们已经看到的&#xff0c;Map 对象是一个键值对。最初&#xff0c;M…

〖Python网络爬虫实战⑲〗- 数据存储之CSV文件

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付…

第二部分——长难句——第二章——复合句——第一节——名词性从句

首先复合句是什么呢&#xff1f; 多件事一样重要就叫并列句&#xff0c;如果不一样重要就叫并列句。 复合句主句从句 下面我们来看一个例句&#xff1a; 找到从句之后剩下来的不就是主句吗&#xff1f; 一&#xff0c;宾语从句 &#xff08;一&#xff09;宾语从句的含义 一…

字符串中的第一个唯一字符

题目&#xff1a;字符串中的第一个唯一字符 思路一&#xff1a;暴力查找&#xff0c;时间复杂度 思路一&#xff1a;开辟检查重复数组,以空间换时间&#xff0c;时间复杂度 这段代码的作用是在一个字符串 s 中找到第一个不重复&#xff08;只出现一次&#xff09;的字符&#…

kafka和rocketmq区别对比

Kafka和RocketMQ是目前非常流行的分布式消息系统&#xff0c;它们都能够高效地处理海量的消息数据。在本文中&#xff0c;我们将对Kafka和RocketMQ进行技术比较&#xff0c;分析它们在各方面的优缺点&#xff0c;以便读者在选择消息系统时能够做出更加明智的决策。 一、架构设计…

Java-volatile实现详解(从java到汇编)

在Java内存模型一节&#xff0c;除了synchronized外&#xff0c;我们还提到一个常用关键词----volatile&#xff0c;我们说过volatile保证了并发环境的可见性和顺序性&#xff0c;使用volatile修饰的变量&#xff0c;当然值发生改变时&#xff0c;可以同步到其他线程&#xff0…

【python】你的表情包缺不缺?我猜你缺了~来批量获取一波吧~

目录 前言环境使用:模块使用:如何去实现本次案例: <通用模板>代码展示尾语 &#x1f49d; 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 在我们的生活中&#xff0c;总少不了表情包来调剂 少了表情包就会少了很多趣味 今天就来教大家如何批量下载我们的表情包 环…

力扣刷题2023-04-29-1——题目:1431. 拥有最多糖果的孩子

题目&#xff1a; 给你一个数组 candies 和一个整数 extraCandies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子&#xff0c;检查是否存在一种方案&#xff0c;将额外的 extraCandies 个糖果分配给孩子们之后&#xff0c;此孩子有 最多 的糖果…

接触Word的编辑保护【简单版】

首先&#xff0c;我们遇到的情况是下图这样的&#xff1a; 点一下停止保护&#xff0c;是下图这样的&#xff1a; 开始解决&#xff1a; 第一种方式&#xff1a;另存为Word Xml 存好了&#xff0c; 打开如下图&#xff08;我用VS打开的&#xff0c;最好找个能够格式化代码的编…