Windosw下Visual Studio2022编译OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它提供了一系列用于处理图像和视频的算法和函数,包括图像处理、特征检测、物体识别、人脸识别等。OpenCV支持多种编程语言,如C++、Python、Java等,使得开发者可以在不同的平台上开发和部署计算机视觉应用程序。

OpenCV具有强大的功能和性能优势。它提供了大量的图像处理和计算机视觉算法,如边缘检测、图像滤波、特征提取、图像匹配等。同时,OpenCV的算法经过优化,可以高效地处理大规模图像和视频数据。

一、准备工作

1、CMake下载(请使用最新版本,避免出现错误):https://cmake.org/

根据文档显示需要3.27以上版本才能支持所有功能

2、OpenCV源码下载:https://gitcode.com/gh_mirrors/opencv31/opencv

3、OpenCV扩展模块源码下载:https://gitcode.com/gh_mirrors/op/opencv_contrib

如已安装git,可以用下面的指令下载源码

复制代码
git clone https://gitcode.com/gh_mirrors/opencv31/opencv.git
git clone https://gitcode.com/gh_mirrors/op/opencv_contrib.git

二、编译

1、解压opencv、opencv_contrib
2、将opencv_contrib拷贝到opencv源码内,并新建build文件夹
3、修改第三方库下载地址

进入D:\opencv\3rdparty\ippicv 目录,将 ippicv.cmake 的https://raw.githubusercontent.com修改为https://raw.staticdn.net

进入D:\opencv\3rdparty\ffmpeg目录将 ffmpeg.cmake的https://raw.githubusercontent.com修改为https://raw.staticdn.net

同样修改opencv_contrib内文件:

D:\opencv\opencv_contrib\modules\xfeatures2d\cmake目录下两个文件

D:\opencv\opencv_contrib\modules\face目录下CMakeLists.txt

D:\opencv\opencv_contrib\modules\wechat_qrcode目录下CMakeLists.txt

原地址下载很慢且可能出现无法下载问题~~~

修改后仍可能出现问题:

ippicv_2021.12.0_win_intel64_20240425_general.zip无法下载,请手动下载

https://github.com/opencv/opencv_3rdparty/blob/ippicv/master_20240425/ippicv/ippicv_2021.12.0_win_intel64_20240425_general.zip

百度网盘:https://pan.baidu.com/s/1y1XgRF7MrXS4uEUHXqmj-A?pwd=7yb7

提取码:7yb7

下载后拷贝到 D:\opencv\.cache\ippicv并改名

4、打开cmake GUI,选择opencv源码目录和编译build目录
5、Finish等待结束之后,进行排错配置

找到"BUILD_opencv_world"和"OPENCV_ENABLE_NONFREE"这两个变量,在变量后面的方框内打上"√"。之后找到"OPENCV_EXTRA_MODULES_PATH"变量,选择opencv_contrib安装包里的modules文件夹;

重新configure直到没有红色提示且出现Configuring done,点击Generate

6、VS2022打开OpenCV.sln

优先编译opencv_world(当然可直接执行ALL_BUILD)

执行ALL_BUILD,之后是漫长的等待

编译完成后执行INSTALL

7、查看生成文件

安装路径在install下

bin目录下看到 opencv_world 模块

至此,大功告成!

感谢您的阅读和关注。希望本文能对您有所启发或帮助。如果您还有任何问题或意见,欢迎随时与我交流。祝您生活愉快,事业顺利!

相关推荐
Jayden_Ruan17 分钟前
C++逆向输出一个字符串(三)
开发语言·c++·算法
liulun30 分钟前
Skia如何渲染 Lottie 动画
c++·动画
点云SLAM1 小时前
C++ 常见面试题汇总
java·开发语言·c++·算法·面试·内存管理
小王爱学人工智能2 小时前
OpenCV的阈值处理
人工智能·opencv·计算机视觉
湫兮之风3 小时前
OpenCV: Mat存储方式全解析-单通道、多通道内存布局详解
人工智能·opencv·计算机视觉
UnnamedOrange3 小时前
ROS2 配置 linter 的代码格式化工具为 clang-format
c++·cmake
Dobby_053 小时前
【面试题】C++系列(一)
c++·面经
计算机小手3 小时前
AI 驱动数据分析:开源 SQLBot 项目探索,基于大模型和 RAG 实现精准问数与图表挖掘
经验分享·docker·开源软件
一拳一个呆瓜3 小时前
【MFC】对话框节点属性:Language(语言)
c++·mfc
点云侠5 小时前
解决Visual Studio 2022编译工程速度慢的问题
开发语言·c++·ide·算法·计算机视觉·visual studio