opencv_contrib模块编译与安装

news2024/11/30 20:34:41

前言

由于opencv_contrib模块的安装依赖于opencv基础模块,所以看该教程前请先看一遍OpenCV基础模块安装教程

下载

下载 opencv_contrib模块(需要与opencv基础模块版本号4.6.0相同,国内可以在gitcode下载)

配置、编译、安装

打开cmake-gui,选择【OpenCV基础模块】的源码路径(不是contrib模块),再选择新的编译输出路径build/contrib,然后点击configure,等待结束。
在这里插入图片描述

完成后,【在基础模块的配置上】继续设置下面几个配置:

  1. 设置contrib模块路径 xxxx/opencv_contrib-4.6.0/modules(注意要包含modules)
    image-20230513163704147

  2. 勾选 nonfree(允许使用带专栏的算法)
    image-20230513163853739

重新点击configure,然后等待,这又会下载很多东西,不出意外又会报红,因此接下来又需要手动下载了。【下载方式见文章最后-configure报红解决办法】

下载完毕、重命名且放到对应文件夹后,依次执行下面步骤:

  1. 点击configure,然后generate
  2. 关闭cmake-gui,在 build/contrib目录下打开cmd
  3. 在cmd输入命令 mingw32-make -j7 开始编译(通常需要30分钟以上)

编译完成即可使用命令 mingw32-make install 进行安装, 然后添加环境变量(注意是把含有.dll的bin目录添加到环境变量)

configure报红解决办法

方法一、手动下载

进入 build/contrib 目录,打开【CMakeDownloadLog.txt】文件,找到所有含有 “cmake_download” 的行, 单独复制到一个文件中,方便后面对照下载。

如:

#cmake_download "D:/xxxx/opencv460/opencv/sources/.cache/xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i"
# 第2个链接是文件下载位置,第1个链接则是下载文件并重命名后保存的位置

对着每一条下载链接,把所有 raw.githubusercontent.com 都改为 raw.staticdn.net 后再去下载。

下载完成按照第1个链接描述那样,重命名并保存到指定位置。

方法二、写个Python脚本自动下载

【附】:写了个python脚本自动下载缺少的文件,安装了python以及requests库的可以用该脚本进行下载(注意,有个 .dat文件较大,请自行下载)

import requests
import os


def getItemUrls(fpath):
    items = []
    with open(fpath, 'r') as f:
        lines = f.readlines()
        for line in lines:
            if('cmake_download' in line):
                line = line.strip().replace('"', '')
                linfo = line.split()
                fileSavePath = linfo[1]
                url = linfo[2].replace(
                    'raw.githubusercontent.com', 'raw.staticdn.net')
                item = dict(file=fileSavePath, url=url)
                items.append(item)
    return items


def save(savepath, content):
    with open(savepath, 'wb') as f:
        f.write(content)


print('请输入 CMakeDownloadLog.txt 的文件路径',
      r'比如D:\opencv\sources\build\release\CMakeDownloadLog.txt', sep='\n')
fp = input(': ')

items = getItemUrls(fp)

for i in range(len(items)):
    item = items[i]
    if(item["url"][-3:] == "dat"):
        print(f"i={i} --> 文件过大,请自行前往{item['url']}\n并保存为 {item['file']}")
        continue
    os.makedirs('/'.join(item['file'].split('/')[:-1]), exist_ok=True)
    try:
        r = requests.get(item['url'], timeout=20)
    except:
        print(f"i={i} --> 下载失败,请自行前往{item['url']}\n并保存为 {item['file']}")
        continue
    save(item['file'], r.content)
    print(f'i={i} --> 已下载')
    
print("【下载结束】")

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

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

相关文章

网工视角看基础网络,原来这么与众不同

大家好,我是老杨。 前两天去华为生态大会刚回来,颇为感慨。 感慨万物互联的世界越来越大,网络渗透度也越来越极致化。 网络很大,非常大,但在网工眼里,网络复杂又美妙,有着外行人难以理解的魅…

大数据Doris(十九):Doris索引介绍与前缀索引

文章目录 Doris索引介绍与前缀索引 一、Doris索引介绍 二、前缀索引 Doris索引介绍与前缀索引 一、Doris索引介绍 索引用于帮助快速过滤或查找数据。目前 Doris 主要支持两类索引: 内建的智能索引,包括前缀索引和 ZoneMap

【Prompting】ChatGPT Prompt Engineering开发指南(2)

ChatGPT Prompt Engineering开发指南2 从产品概况表生成营销产品描述问题1:文本太长问题2: 文本聚焦于错误的细节问题3:描述需要一个尺寸表 加载Python库查看HTML内容来源 在本教程中,学习迭代分析并完善给出的提示,以从结果概况表…

20230514 Google宣布引入生成式人工智能搜索引擎

🚀 Google宣布引入生成式人工智能搜索引擎,可能是最大变化之一。 Google宣布引入生成式人工智能搜索引擎,可能是最大变化之一。 新搜索将使用人工智能模型整合互联网信息,更好地响应用户需求。然而,网络出版商担心这…

python+vue流浪动物公益科普宠物在线领养网站

使用动物在线领养网站的用户分管理员和用户两个角色的权限子模块。 开发语言:Python 框架:django/flask Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 系统所要实现的功…

接口自动化测试之request模块讲解,以及初步接口自动化测试框架封装(统一请求)

一、有接口测试工具的情况下,为什么要做接口自动化? 1.敏捷开发,接口一般数量很大,团队实现接测试,版本控制。 2.功能太死板,有些接口完全无法实现(复杂的加密接口,签名接口等) 3.接…

【STL十九】算法——修改序列的操作(copy、move、remove、transform、replace)

算法——不修改序列的操作(copy、move、transform、remove、replace) 一、分类二、修改序列的操作三、copy四、move五、remove、remove_if六、fill、transform、replace、replace_if、reverse 一、分类 根据网站https://www.apiref.com/cpp-zh/cpp/head…

Spring的执行流程以及Bean的作用域和生命周期

深入Bean对象 1. Bean对象的作用域1.1 引出作用域问题1.2 六种作用域 2. Spring的执行流程3. Bean对象的生命周期 在之前的学习中,我们了解到Spring能够用来帮助我们管理Java中的Bean对象,我们能够向Spring的IOC容器中添加以及获取对象。那我们从Spring对…

【腾讯云 Finops Crane 集训营】学习云原生成本优化

目录 开篇介绍搭建环境第一步第二步第三步 添加集群成本洞察成本分析资源推荐与副本数智能预测与自动扩缩容EHPA安装Metrics Server创建测试应用创建 EffectiveHPA增加负载整体流程 调度优化负载感知调度拓扑感知调度 混部清理环境 开篇 某次闲逛CSDN,发现了这样一…

(文章复现)基于电力系统碳排放流理论的碳排放分摊模型研究(含matlab代码)

参考文献:基于电力系统碳排放流理论的碳排放分摊模型研究 之前写过一篇博客复现论文《电力系统碳排放流的计算方法初探》,那篇文章模型比较简单,没有考虑网损。(文章复现)电力系统碳排放流的计算方法初探(含matlab代码) 今天要复现的这篇文献…

1行命令本地部署 AgentGPT

本地部署 AgentGPT 部署 AgentGPT访问 AgentGPT 部署 AgentGPT 运行下面命令部署 AgentGPT,输入你的 OpenAI Key, git clone https://github.com/reworkd/AgentGPT.git; cd AgentGPT; ./setup.sh --docker访问 AgentGPT 使用浏览器打开 http://localh…

万得后端一面

目录 1.说说重载和重写2.内连接和外连接3.如果有一个任务来了,线程池怎么运行5.hashset怎么判断重复6.list和set说说7.说说有哪些list8.单例模式的饿汉式和懒汉式,怎么样可以防止反射。9.volatile关键字说说 1.说说重载和重写 1、重载发生在本类&#x…

MySQL创建索引时提示“Specified key was too long; max key length is 767 bytes”

MySQL创建索引时提示“Specified key was too long; max key length is 767 bytes” 问题描述 数据库RDS MySQL版在创建表索引时,出现如下错误信息。 Error 1071: Specified key was too long; max key length is 767 bytes.ERROR 1709 (HY000): Index column siz…

基于ESP32/ESP8266的单通道LoRaWAN网关设计-网页界面介绍

资料下载链接》》 网页界面介绍 对于单通道网关的第六版用户界面,我们专注于 Web 界面。本文档仅涉及 Web 界面。有几个部分要讨论: 用户界面说明web界面可以设置哪些参数单通道接口配置涉及的文件。 Web 界面的各个部分 启动 Web 界面时&#xff0…

【评测】腾讯云服务器的性能怎么样?

转载请注明出处:小锋学长生活大爆炸[ http://xfxuezhang.cn] 最近腾讯云推出了5年款服务器,性价比非常的高。但这么便宜的服务器,性能怎么样呢?学长特地领取了新人试用版测试了一下性能,这里与大家分享一下。 服务器领…

与对应负数同时存在的最大正整数

一、2441. 与对应负数同时存在的最大正整数 思路 这个题我想的是将数组中的负数全部找出来放进另一数组,然后再将原数组的元素与与之相比,如果相加等于0,那么就使num; 代码实现 int findMaxK(int* nums, int numsSize){int max0…

学系统集成项目管理工程师(中项)系列21b_整体管理(下)

1. 监控项目工作 1.1. 跟踪、审查和报告项目进展,以实现项目管理计划中确定的绩效目标的过程 1.2. 输入 1.2.1. 项目管理计划 1.2.2. 进度预测 1.2.2.1. 基于实际进展与进度基准的比较而计算出进度预测 1.2.2.1.1. 完工尚需时间估算(ETC) 1.2.2.1.2. 进度偏差(SV…

威胁报告检测到物理后果呈指数增长的OT网络攻击

2023年威胁报告 - 具有物理后果的 OT 网络攻击 在过去一年(2022 年),我们看到了 57 起针对工业系统的 OT 相关网络攻击,这些攻击在现实世界中造成了物理后果。这是我们在 2021 年看到的 22 次类似攻击的 2.5 倍多,是 …

网路通信-路由交换协议

目录 一、什么是协议 二、为什么要有协议 三、协议分类 (1)OSI通信模型 (2)tcp/ip通信模型 (3)数据传输的过程 1.传输路线 2.发送者封装数据 3.数据经过交换机 4.数据经过路由器 5.路由器转发到目…

深度学习环境配置系列文章(四):WSL2配置Windows11和Linux双系统

深度学习环境配置系列文章目录 第一章 专业名称和配置方案介绍 第二章 Anaconda配置Python和PyTorch 第三章 配置VS Code和Jupyter的Python环境 第四章 WSL2配置Windows11和Linux双系统 第五章 配置Docker深度学习开发环境 第四章文章目录 深度学习环境配置系列文章目录前言一…