【OpenCV】opencv-4.9.0源码编译

2024-06-13 04:12
文章标签 编译 源码 opencv 4.9

本文主要是介绍【OpenCV】opencv-4.9.0源码编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很高兴在雪易的CSDN遇见你 

VTK技术爱好者 QQ:870202403      公众号:VTK忠粉


前言

本文分享OpenCV-4.9.0源码编译流程,包含CUDA模块,包含Python-opencv,希望对各位小伙伴有所帮助!

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

你的点赞就是我的动力(^U^)ノ~YO


目录

前言

1. 环境准备

2. 源码下载

3. CMake编译

3.1 创建cmake项目

3.2 设置编译配置

结论:


1. 环境准备

  • Visual Studio 2022
  • Python3.12
  • CUDA: 12.2, cudnn: 9.0
  • CMake3.27.0

2. 源码下载

下载OpenCV源码,此处需要下载两个源码,分别是opencvopencv_contrib。下载链接为

opencv:
https://github.com/opencv/opencv/archive/4.8.0.zip
opencv_contrib:
https://github.com/opencv/opencv_contrib/tags

  不过在下载时要注意一点,就是要保证opencvopencv_contrib下载的版本要一致,此处我们下载的版本为:4.9.0。下载完成后,将两个文件解压到同一个文件夹中。

3. CMake编译

3.1 创建cmake项目

  打开CMake软件,设置项目源码路径,并在源码路径下创建一个build文件夹,并设置编译文件夹,如下图所示:

  接下来点击Configure,进行第一次配置,然后回弹出编译平台选择,此处根据自己电脑的编译软件进行选择,在本文中我们使用的是Visual Studio 2022,然后选择编译平台为x64

  第一次配置生成后,输出如下所示:

3.2 设置编译配置

首先添加opencv_contrib模块的引用,在OPENCV_EXTRA_MODULES_PATH条目中添加该模块的路径,然后选择OPENCV_ENABLE_NONFREE,如下图所示:

接下来添加CUDA的设置,首先选择WITH_CUDA,如下图所示:

然后选择OPENCV_DNN_CUDA,此处还可以选择OPENCV_DNN_OPENVINO等不同的模型部署,如下图所示:

 最后选择ENABLE_FAST_MATH

 此处为了让生成的依赖库文件都集成在一个文件中,方便后面使用,所以此处可以选择BUILD_opencv_world,如果不选择,生成的 文件将会被拆散成多个文件。

  

还有Python相关的选项

第二次Configure后,下一步就是需要检查一下其过程是否有异常抛出

第一个异常:

解决方案:

DNN: CUDA backend requires cuDNN. Please resolve dependency or disable OPENCV_DNN_CUDA=OFF · Issue #25426 · opencv/opencv · GitHub

cuDNN9还不支持,因此切换为相应的cuDNN版本。

下载时需要注册账号,但又经常会卡在注册账号页面。可以右键复制连接后,在迅雷中下载。

下载完成后,打开压缩文件,将lib,dll,include文件夹的文件复制到CUDA的安装目录对应的文件夹下。

并在变量CUDNN_LIBRARY中写入cudnn.lib的路径 

第二个异常:文件下载异常

  首先查看一下配置输出框是否抛出警告,如果有的话,一定要解决一下,不然后续编译会出错。

image

  当出现上图所示的异常后,就需要手动解决一下该问题,首先找到build\CMakeDownloadLog.txt文件,然后打开后,查看一下是否有下图所示的文件确实异常。如果有,请自行下载,下载链接如下图所示标注位置,下载后将文件放置在下图所示缺失文件路径,并按照要求修改名称。

image

折腾了一天,终于看到Configuring done !

结论:

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

这篇关于【OpenCV】opencv-4.9.0源码编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056241

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。 使用qt访问web接口,因为是https,没有openssl库会报错 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());if (reply){if (reply->error() == QNetworkReply::NoError

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

brew install opencv@2 时报错 Error: Can't create update lock in /usr/local/var/homebrew/locks!

解决方案,报错里已经说明了: 我的解决方案: sudo chown -R "$USER":admin /usr/local   stackoverflow上的答案 I was able to solve the problem by using chown on the folder: sudo chown -R "$USER":admin /usr/local Also you'

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz