【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】解决了过程中遇到的小问题

news2024/9/23 3:33:09

0.版本选择

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。
在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。
当然也可以用qt creator这一原生IDE。
OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

1.安装vs 2017和MingW

我选择安装的是vs2017专业版,过程略
mingw是win平台下gcc ,g++工具包等,熟悉Linux的可能经常用到,安装后在命令行编译源码了。
官网往下翻:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
在这里插入图片描述
可以选择在线安装器,也可以选择安装包解压缩。后面的后缀不需要去知道,我选择第二个。
解压缩以后在本地文件中找到bin文件夹,里面有很多exe,这些都要添加到环境变量当中。
找一个合适的位置存放mingw,然后copy地址,粘贴到环境变量当中,让系统识别到bin下面的可执行程序,重启电脑。
在这里插入图片描述

测试:输入g++ --version,打印内容显示检测到8.1.0的版本,完成。
在这里插入图片描述

2.安装Cmake

cmake官网:https://cmake.org/download/
找一个合适的版本下载,Windows下比较方便,可以直接在线安装cmake,所以直接选择.msi
按选择的是3.26.4,推荐在线安装节省时间;
当然也可以源码安装,这就需要刚才下载的mingw了。
在这里插入图片描述
安装:选择添加到环境变量,新建桌面图标
在这里插入图片描述
检查一下环境变量,安装完成后系统会自动给你添加进去。同时桌面会生成一个cmake-gui的图标。就是可视化操作cmake编译。
cmake编译的原理和过程可以自行百度一下,了解过程有利于编译操作。

3.安装OpenCV

(1)下载opencv

OpenCV官网:https://opencv.org/releases/
在这里插入图片描述

Windows下可以安装exe执行程序(直接点击Windows),当然也可以下载可跨平台的源码(Sources)来安装。Linux下只能源码安装。
区别的话,直接运行编译好的exe,程序会直接将OpenCV的库打包成一个名字叫opencv_world的库,这里面包含了所有的库文件,就是说链接库文件的时候直接连接到这一个库就好了。
源码编译的自由度比较高,可以选择安装哪一些库文件,当然也可以安装成一个总的opencv_world。

为了更好的认识各种库扮演的角色,我这里选择源码安装,所以就要用到cmake编译工具。
解压zip后,OpenCV文件夹中不仅有源码还有相关测试代码和data,以及下方的CMakeLists.txt。

(2)下载opencv-contrib

自从OpenCV 3.0之后,很多经典的算法,比如sift和surf特征点检测算法,由于专利原因,已经不包含在OpenCV的源码当中了,需要下载OpenCV contrib包才能继续使用。
opencv-contrib:https://github.com/opencv/opencv_contrib/tags
找到对应的版本号下载,解压缩。

(3)cmake编译opencv源码

第一行是你的源码文件,第三行是你要编译到哪里,通常都是新建一个build来存放,这样显得整齐,不破坏源码文件。
在这里插入图片描述
点击configure,选择你的编译平台和架构,其他默认,开始配置:
在这里插入图片描述

等待2分钟左右,编译会显示done,这时候上面会出现很多模块。但是检查一下会出现很多爆红的,大概意思就是没有下载到链接(被墙了),也就意味着我们要将这一部分手动下载,这也是最麻烦的一步了,如果无法解决,那还是回到之前说的,直接exe在线安装!

在这里插入图片描述

到opencv-4.5.5/build目录中找到CMakeDownloadLog.txt日志文件,里面提供了无法下载的包的网址,我们要做的就是一个一个去下载;比如圈起来的部分,前面是下载网址,

在这里插入图片描述

打开D:\Tools\opencv-4.5.5.cache,发现里面的内容都是0kb,也说明了文件没有下载下来,我们要做的就是下载对应的文件,然后替换掉他,但要保证名字一样。

这时候分两种情况:
一种是输入网址会下载不同后缀的包文件,找到后复制到.cache文件夹下对应的目录中,并修改名字,确保和0kb的那个文件名字一致。
另一种情况是输入网址会给出一些指令,不要复制到本地保存,直接找到本地文件的名字,复制名字,在网页中右击另存为,存到目标位置并用刚才复制的名字,提示是否替换选择是。

然后重新配置,done以后没有标红了,根据自己的需要选择编译的包,我这里选择了opencv_world和with qt、with opengl。选完后点击generate生成,done后点击open project,用vs 2017来打开

在这里插入图片描述

打开vs2017以后,右边会出现整个sln,右击-批生成-选择两种ALL_BUILD和ALL_INSTALL:
在这里插入图片描述
在这里插入图片描述

点击生成,等待大概20分钟,如果有未编译通过的,大概率是字符规则的问题,解决方案:https://blog.csdn.net/pypyquixue/article/details/123448814
这个链接中评论区有个回答是有用的,大意就是报错区域附近有日文注释,编译器看不懂,删掉那几句日文注释就好啦。
修改完以后,一定要清理解决方案,再重复批生成那一步。大概率是没问题的,我也试过最新版本,也是没问题的。

(4)cmake编译opencv—contrib

这个文件可以理解为扩展包,里面一些特殊的库放在里面,对于常用的算法基本用不到。为了完整,也同时编一下吧,流程跟之前的几乎一致:
在这里插入图片描述
打开cmake-gui,保持之前的选择路径不变
搜索extra,选择路径就是你下载的opencv-contrib文件夹下面的modules;

在这里插入图片描述

搜索OPENCV_ENABLE_NONFREE,选择
在这里插入图片描述
点击configure,还是爆红,像上面一样解决,查找,手动下载,替换~~。
ok.

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

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

相关文章

测试|Junit相关内容

测试|Junit相关内容 文章目录 测试|Junit相关内容0.Junit说明1.Junit注解TestDisabledBeforeAll和AfterAllBeforeEach和AfterEach 2.Junit参数化单参数多参数(多种/多组)CSV获取参数(支持多种)CSV文件获取参数(支持多种…

牛客网Verilog刷题——VL52

牛客网Verilog刷题——VL52 题目答案 题目 请编写一个十进制计数器模块,当mode信号为1,计数器输出信号递增,当mode信号为0,计数器输出信号递减。每次到达0,给出指示信号zero。模块的接口信号图如下: 模块的…

文心一言 VS 讯飞星火 VS chatgpt (69)-- 算法导论6.5 8题

八、HEAP-DELETE(A,i)操作能够将结点 i 从堆 A 中删除。对于一个包含 n个元素的堆,请设计一个能够在 O(lgn)时间内完成的 HEAP-DELETE 操作。 文心一言: 要在 O(log n) 时间内完成 HEAP-DELETE 操作,可以使用以下方法&#xff1…

IPsecVPN实验复现

基础配置: r1: r2: r3: AR1: 一 配置IKE AS 的安全协议: ike proposal 1 ---安全提议编号 encryption-algorithm aes-cbc-128 --- 加密算法 dh group5 ---DH算法 authentication-algorithm md5---…

一起来学算法(邻接矩阵)

前言: 邻接矩阵是数学和计算机科学中常用的一种表示方式,用来表述有向图或无向图,一张图由一组顶点(或结点)和一组表组成,用邻接矩阵就能表示这些顶点间存在的边的关系 1.图的概念 对于图而言,…

【业务功能篇61】SpringBoot项目流水线 dependencyManagement 标签整改依赖包版本漏洞问题

业务场景:当前我们项目引入了公司自研的一些公共框架组件,比如SSO单点登录jar包,文件上传服务jar包等公共组件,开发新功能,本地验证好之后,部署流水线,报出一些jar包版本的整改漏洞问题&#xf…

一文帮你快速理解协程使用模型

本文同步发表在个人博客上 0xforee’s blog 前言 A coroutine is an instance of suspendable computation. It is conceptually similar to a thread, in the sense that it takes a block of code to run that works concurrently with the rest of the code. However, a co…

d3dcompiler_47.dll缺失怎么修复,分享几种快速修复方法

当我们打开电脑软件或许游戏时候,如果电脑计算机中丢失了d3dcompiler_47.dll就会报错,丢失d3dcompiler_47.dll“”或许找不到d3dcompiler_47.dll等等提示。它主要用于编写和编译Direct3D 11的着色器程序,是Direct3D 11中非常重要的组成部分。…

FFmpeg下载安装及Windows开发环境设置

1 FFmpeg简介 FFmpeg:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。项目的名称来自MPEG视频编码标准,前面的"FF"代表…

Java中集合容器详解:简单使用与案例分析

目录 一、概览 1.1 Collection 1. Set 2. List 3. Queue 1.2 Map 二、容器中的设计模式 迭代器模式 适配器模式 三、源码分析 ArrayList 1. 概览 2. 扩容 3. 删除元素 4. 序列化 5. Fail-Fast Vector 1. 同步 2. 扩容 3. 与 ArrayList 的比较 4. 替代方案…

AutoSAR系列讲解(实践篇)10.8-实验:模式管理

首先备份上一次的工程,养成好习惯(最好还是用Git,这次最后再安利一下Git这个神器)。今天的实验异常的简单,基本都是自动配置好了,只需 要勾选上就行,但是大家最好结合前面讲解的内容,把里面的选项点开看看,稍微理解一下。如此,假如配置出错了,才不至于慌乱了手脚 一…

【C语言】通讯录3.0 (文件存储版)

前言 通讯录是一种记录联系人信息的工具,包括姓名、电话号码、电子邮件地址、住址等。 文章的一二三章均于上一篇相同,可以直接看第四章改造内容。 此通讯录是基于通讯录2.0(动态增长版)的基础上进行增加文件操作功能&#xff0c…

jq——页面滚动到显示区域,再执行动画——基础积累

今天郑大东同事向我显摆了一个他做的动画,效果如下: 使用场景 当页面滚动到相应区域时,再执行里面的动画,也就是下图中右侧的一层层的显示动画,无论是向上滚动页面还是向下滚动页面。 下面直接上代码: …

mybatis更新时记录变更的字段日志java反射获取字段值转成string

1.先写个注解,加在entity的字段上,标记要记录这个字段的更新记录,再加个变更记录表(你们可以用自己的日志表) Retention(RetentionPolicy.RUNTIME) Target({java.lang.annotation.ElementType.FIELD}) Documented public interface ModifyAw…

iPhone 8透明屏的透明度高吗?

iPhone 8是苹果公司于2017年推出的一款智能手机,它采用了全新的设计和技术,其中一个亮点就是透明屏。 透明屏是指屏幕具有透明度,可以透过屏幕看到背后的物体。 iPhone 8的透明屏采用了最新的OLED技术,这种技术可以实现更高的对比…

Jmeter —— jmeter参数化实现

jmeter参数化 在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能。这种测试方式在业界称为数据驱动测试, 而在实际测试工作中,测试工具中实现不同数据输入的过程称…

替代LT8711龙讯替代RTD2172 CS5265中文规格书4K60HZ转接线 设计Type-C转HDMI2.0高清投屏方案

龙迅LT8711是一款Type-C/DP1.2 to HDMI2.0方案芯片,北京集睿致远(ASL)推出的CS5265可以完全代替LT8711UX,封装尺寸比LT8711UX小的同时,CS5265的芯片集成度高,内置MCU,内置lLDO等,CS5…

【外卖系统】菜品信息分页查询

需求分析 当菜品数据很多时,用分页的形式来展示列表数据 代码开发 页面发送ajax请求,将分页查询参数提交到服务端,获取分页数据页面发送请求,请求服务端进行图片下载,用于页面图片展示 构造分页 注意:…

Unity简单抽奖效果实现

实现效果如下: 实现效果为:外部传入数值,正常显示 lhj抽取效果 用户可自定义行为:1,抽取的显示;2,抽取的最低时间 实现代码如下,可自行改写: using System.Collection…

最新 23 届计算机校招薪资汇总

24 届的秋招提前批已经开始了,比如米哈游、oppoe、tplink 等公司都已经录取开启提前批。 像腾讯、字节、阿里等一线大厂的话,根据往年的情况,估计是 7月下-8 月初。 所以今年参加秋招的同学,要抓紧复习了。 提前批通常就持续不到…