OpenCV_contrib配置教程(详细版)

news2025/1/12 8:54:56

文章目录

    • 一:前提准备
      • 1:OpenCV4.5.1、OpenCV_contrib4.5.1扩展库下载
      • 2:Cmake下载地址
          • Download
    • 二:cmake配置
      • 1:
      • 2:
    • 三:vs2017编译OpenCV build文件
    • 四:环境配置


个人笔记:

一:前提准备

操作系统:Windows 10或Windows 11
软件:Visual Studio 2017、OpenCV4.5.1、OpenCV_contrib4.5.1扩展库、Cmake3.19.3.

个人用到是vs2017,这里vs版本也可以用2015,2019,等,自己尝试即可。

注意:OpenCV基础库和contrib扩展库的版本一定要一致!!!

1:OpenCV4.5.1、OpenCV_contrib4.5.1扩展库下载

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

2:Cmake下载地址

Download

链接:https://cmake.org/download/
找到对应的版本下载即可,如果在界面找不到,就去链接下方有个旧版本的链接找。
在这里插入图片描述在这里插入图片描述

二:cmake配置

1:

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

比如:#cmake_download “D:/OpenCV4.5.1/opencv-4.5.1/.cache/ade/b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip” “https://github.com/opencv/ade/archive/v0.1.1f.zip”

在文件中搜索cmake_download ,找到每个cmake_download ,后面是文件路径,比如:“D:/OpenCV4.5.1/opencv-4.5.1/.cache/ade/b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip”

再后面是文件下载的链接"https://github.com/opencv/ade/archive/v0.1.1f.zip",把下载后的文件修改名字为b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip

下载文件的时候需要挂梯子,有些文件是外面的。

放到路径下"D:/OpenCV4.5.1/opencv-4.5.1/.cache/ade/b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip"

上面下载的有些事dll文件和压缩包文件,如果是文件,就按照下图操作后保存到本地,然后就按照上面操作一样了。
在这里插入图片描述

在这里插入图片描述
CMakeDownloadLog.txt里的所有链接文件下载完成后,按照以上操作把文件放到指定位置。
把生成的"contrib_build_64__"的文件夹删掉,然后重复cmake刚开始的步骤,cmake记录区不在有爆红字体,说明build成功。在这里插入图片描述

2:

在这里插入图片描述
在这里插入图片描述上栏操作:在上栏界面中的变量中找到“BUILD_opencv_world”和“OPENCV_ENABLE_NONFREE”两个变量,在变量后面的方框中勾选,即打上“√”(含义可自行百度,但没必要)。随后,找到“OPENCV_EXTRA_MODULES_PATH”变量,在此变量后面加上【opencv_contrib4.5.1】文件夹里的【modules文件夹】的路径。最后再次点击【Configure】,直到上栏所有的红色变量变成白色。
如果下栏记录区有红色字体,就按照上面1的步骤重新执行,直到所有的字体都变为白色字体。
现在已经build完成。下面介绍编译需要的文件。

三:vs2017编译OpenCV build文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
上面我选择了debug和release,都会用到。
生成的时间会比较长,如果你上述所有步骤都没错的话,生成后的结果会是全都成功,有些步骤可能在CMake中【Configure】和
【Generate】都通过并没有警告字样,但有错误的话,在vs2017中生成是会有错误的(注:生成的数量因人而异)。
在这里插入图片描述

四:环境配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述opencv_world451d.lib "451d"是用于debug模式下。“451”是用于release模式下。
在这里插入图片描述以上就是配置的完整过程。

在这里插入图片描述
在这里插入图片描述
这里用到了图像细化函数,而这个函数是在扩展模块中。

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

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

相关文章

如何构建编译gopacket包的测试用例?(gopacket抓取数据包、类似于tcpdump、Wireshark)

本篇文章介绍一下,如何构建gopacket测试用例 1、构建过程中遇到的问题 问题1: -bash: ./gopacket-main: /lib/ld-musl-x86_64.so.1: bad ELF interpreter: No such file or directory问题2: #14 3.150 # github.com/google/gopacket/pcap …

Zimbra 远程代码执行漏洞(CVE-2019-9670)环境搭建

漏洞简介 Zimbra是著名的开源系统,提供了一套开源协同办公套件包括WebMail,日历,通信录,Web文档管理和创作。一体化地提供了邮件收发、文件共享、协同办公、即时聊天等一系列解决方案。此漏洞的主要利用手法是通过 XXE (XML 外部…

【附代码】SSVEP解码算法 - 多变量同步指数(MSI)

1 算法来源 该算法来自电子科技大学张杨松博士,针对该算法的计算在张博士的博士论文中有详细介绍,有兴趣的读者可以下载阅读,本文重点在对该方法的代码实现。Zhang, Yangsong, et al. “Multivariate synchronization index for frequency recognition of SSVEP-based brain…

JS和CSS实现的原生轮播图

文章目录 🍗 前言🍖 JSCSS实现滑动轮播图🍔 纯CSS实现滑动轮播图🍿 JSCSS实现浅入浅出轮播图🥪 JSCSS实现滑动带遮罩轮播图🧀 JSCSS实现卡片式轮播图 🍗 前言 图片来自百度图片,可以…

分析解决【No module named ‘triton‘】的问题

(一)现象 在Windows11下训练Stable-Diffusion的LoRA模型的时候,总是重复提示: A matching Triton is not available, some optimizations will not be enabled. Error caught was: No module named ‘triton’ 意思是&#xff1a…

RocketMQ之 Consumer,消费者消费原理解析

B站 https://www.bilibili.com/video/BV1rX4y1z72v在线学习文档 https://d9bp4nr5ye.feishu.cn/wiki/wikcnjjvso9uytlgVJBfKcJh1Kq 今天我们阅读源码的目的:在SpringBoot项目中,RocketMQ是如何通过 RocketMQMessageListener 来进行消费的。 在SpringBoot…

Python数据结构-----leetcode用队列实现栈

目录 前言: 方法步骤 示例 Python代码实现 225. 用队列实现栈 前言: 上一期学习了怎么去通过两个栈来实现队列,同样这一期我就来讲讲怎么去通过两个队列来实现栈的功能,一起来学习吧。(上一期链接Python数据结构--…

【Git基础】常用git命令(一)

文章目录 1. 创建仓库1.1 创建仓库1.2 git add和git commit① git add② git commit③ 工作区、暂存区和仓库 2. 创建git服务器2.1 服务器:2.2 本地2.3 修改配置信息 3. git基础原理3.1 四个区域3.2 工作流程3.3 文件的四种状态① git rm② git checkout 4.优雅的提…

setup的两个注意点

setup的两个注意点 首先,我们原本在v2中,父组件给子组件传递参数时,使用props来接收,当然除了这个方法外,我们还可以通过$attr来接收,只不过使用$atter就不能对父组件传来的参数进行类型的限定&#xff0c…

你是一个资深API接口爬虫程序员,现在需要你介绍一下如何通过商品id来获取商品数据并读取出来

获取商品数据通常需要使用API接口,根据接口文档中的说明传递商品id参数,并使用相应的请求方式(通常为GET请求)向API服务器发送请求即可。 以下是一个获取商品数据的示例请求: 首先打开API接口文档,找到获…

小航助学答题系统编程等级考试scratch二级真题2023年3月(含题库答题软件账号)

青少年编程等级考试scratch真题答题考试系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级(2019年3月)在线答题_程序猿下山的博客-CSDN博客_小航答题助手 1.小猫的程序如图所示,积木块的颜色与球的颜色一致。点击绿旗执行程序后&a…

USB TO SPI / USB TO I2C 软件概要 7 --- 专业版调试器

所需设备: 1、USB 转 SPI / I2C 适配器; 软件概述: SPI类: USB TO SPI 1.0-Slave SPI从机软件,适合单步调试,支持SPI工作模式0、1、2、3,自动跟随主机通讯速率,自动接收数据; …

【算法宇宙——在故事中学算法】背包dp之完全背包问题

学习者不灵丝相传,而自杖明月相反,子来此事却无得失。 文章目录 前言正文小明的探险之旅(2)最后的优化代码 前言 尽管计算机是门严谨的学科,但正因为严谨,所以要有趣味才能看得下去。在笔者的前几篇算法类…

C#基础学习--LINQ

什么是LINQ 从对象获取数据的方法一直都是作为程序的一部分而设计的,然而使用LINQ可以很轻松的查询对象集合 LINQ提供程序 匿名类型 匿名类型经常用于LINQ查询的结果之中 匿名类型的对象创建表达式: using System; using System.Collections; using …

BiFormer:基于双层路由注意力的视觉Transformer

文章目录 摘要1、简介2、相关工作3、我们的方法:BiFormer3.1、预备知识:注意力3.2、双层路由注意(BRA)3.3、BRA的复杂性分析 4、实验4.1、ImageNet-1K图像分类4.2. 目标检测与实例分割4.3. 基于ADE20K的语义分割4.4、消融研究4.5、注意图可视化 5、局限性和未来工作…

C++ -3- 类和对象(中) | (三)END

文章目录 6.日期类的实现构造函数赋值运算符 “”前置、后置日期 - 日期日期类实现—代码汇总流插入流提取 7.const成员const 与 权限放大 8.取地址及const取地址操作符重载 6.日期类的实现 #pragma once #include <stdbool.h> #include <iostream> using namespa…

vue vue-json-viewer 展示 JSON 格式数据

1、下载 vue-json-viewer npm 下载 vue-json-viewer &#xff1a; // Vue2 npm install vue-json-viewer2 --save // Vue3 npm install vue-json-viewer3 --saveyarn 下载 vue-json-viewer &#xff1a; // Vue2 yarn add vue-json-viewer2 // Vue3 yarn add vue-json-view…

基于LS1028 TSN 交换机软件系统设计与实现(三)

NXP 推出 OpenIL 作为用于工业领域的 Linux 发行版&#xff0c; OpenIL 新增的部分中 含有&#xff1a;支持实时的操作系统的扩展和支持工业厂房中自动化 OEM 的 Time-Sensitive 网络。 OpenIL 作为开放型的工业 Linux 系统最大的优势便是将实时计算在网络中 的…

JavaWeb——UDP的报文结构和注意事项

目录 一、UDP特点 1、无连接 2、不可靠 3、面向数据报 4、全双工通信 二、UDP报文结构 1、报头 2、载荷 三、端口 四、报文长度 五、校验和 1、定义 六、注意事项 1、UDP只有接收缓冲区、没有发送缓冲区 2、UDP大小受限 3、基于UDP的应用层协议 4、MTU对UDP协议…

《Java8实战》第11章 用 Optional 取代 null

11.1 如何为缺失的值建模 public String getCarInsuranceName(Person person) { return person.getCar().getInsurance().getName(); } 上面的这种代码就很容易出现NullPointerException的异常。 11.1.1 采用防御式检查减少 NullPointerException 为了避免NullPointerExce…