Visual Studio 2019下编译OpenCV 4.7 与OpenCV 4.7 contrib

一、环境

使用的环境是Win10,Visual Studio 2019,Cmake3.28,cdua 11.7,cudnn 8.5,如果只是在CPU环境下使用,则不用安装CUDA。要使用GPU处理,安装好CUDA之后,要测试安装的CUDA是否能用。不能正常使用的话,添加一下系统环境变量。

二、源码

1.opencv的源码

打开opencv 官网,选择要下载的源码。

2.opencv_contrib

打开 opencv_contrib 的git,下载源码。

三、创建工程

1、选择源码与工程路径

打开cmake,选择下载好的源码,之后选择工程编译路径,如下图:

2.选择编译器

选择源码与工程路径之后点 confingure ,跳出以下界面,选择自己安装的vs 版本:

3.添加 contrib源码

在搜索栏输入extra,然后指定 contrib源码的路径:

4. 创建lib文件方式

查找world这个选项,如果选择则只生成两个lib,如果不选择,则选择一大堆lib:

5.选择CUDA

如果要使用GPU进行图像处理,则要选择CUDA选项,如果是cpu,就不用选择,选择GPU选择时,CUDA安装不正确,会报错:

6.是否编译python环境

选择是否编译成python-opencv,这里不建议选择,如果想在python里面使用opencv,直接pip install opencv-python就可以了,不用这么麻烦:

6.生成工程

选择所有配置项之后,依次点击下以下三个按键:

7.打开工程

可以在build目录找到生成的vs工程,使用vs2019打开工程:

四、生成lib

1.选择生成库

选择生成debug或者release的:

2.生成lib

生成lib和dll与exe文件,这步比较慢:

3.INSTALL

把所有用到lib和dll,exe整合一个目录:

运行之后,在build目录下会生成一个install目录,到这里所有编译都完成了,把这个目录引入到工程目录就可以用了:

五、错误

1.cv::xfeatures2d::VGG::getDefaultName(void)const

在编译中,报下面的错误:

严LNK2001 无法解析的外部符号 "public: virtual class

std::basic_string<char,struct std::char_traits,class

std::allocator > __cdecl

cv::xfeatures2d::VGG::getDefaultName(void)const "

(?getDefaultName@VGG@xfeatures2d@cv@@UEBA?AV? b a s i c s t r i n g @ D U ? basic_string@DU? basicstring@DU?char_traits@D@std@@V?$allocator@D@2@@std@@XZ) opencv_world C:\LIB\opencv_4_7\build\modules\world\fast.cpp.obj 1

下载

patch__.zip

放到opencv 源码目录,如果已经存这个目录,覆盖目录,然后清空工程,从新创建工程,再从头来一次就可以了。

相关推荐
看到我,请让我去学习11 小时前
OpenCV编程- (图像基础处理:噪声、滤波、直方图与边缘检测)
c语言·c++·人工智能·opencv·计算机视觉
蹦蹦跳跳真可爱58920 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
胖大和尚2 天前
CMake是什么
cmake
彭祥.2 天前
Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类
c++·opencv·分类
Tony沈哲2 天前
macOS 上为 Compose Desktop 构建跨架构图像处理 dylib:OpenCV + libraw + libheif 实践指南
opencv·算法
视觉人机器视觉2 天前
Visual Studio2022和C++opencv的配置保姆级教程
c++·opencv·visual studio
PyAIExplorer2 天前
图像旋转:从原理到 OpenCV 实践
人工智能·opencv·计算机视觉
PyAIExplorer3 天前
OpenCV 图像操作:颜色识别、替换与水印添加
人工智能·opencv·计算机视觉
十五年专注C++开发3 天前
CMake基础:条件判断详解
c++·跨平台·cmake·自动化编译
whoarethenext3 天前
使用 C++/OpenCV 和 MFCC 构建双重认证智能门禁系统
开发语言·c++·opencv·mfcc