cmake+vs2019编译OpenCV

简介: cmake+vs2019编译OpenCV
1.下载文件

下载cmake,vs2019,opencv源码及其扩展包

OpenCV源码

OpenCV扩展包

2.安装和解压

安装vs2019,cmake;解压opencv源码及其扩展包(版本要对应)

这就是源码包解压后的文件夹,我的是4.3.0版本的,

其扩展包opencv_contrib文件夹我也解压放到里面了

3.cmake配置和生成

第一个框框为刚刚解压的源码文件夹路径D:/OpenCV/sources4.3.0

第二个框框为保存建造文件的路径D:/OpenCV/build4.3.0

选择好上面的路径后,

点击Configure,

选择对应的编译器和架构(我用的是vs2019和64位平台)

等待。

这时一般会有报错,主要是有一些第三方库在国内不能直接下载。

会造成文件大小为0KB。

(文件先别删,它的文件名需要作为到我们手动下载的文件的文件名,
因为前的那串串码是验证码,没有它是用不了的,弄好这一步再把0KB文件删去)

解决方法:

接下来主要的是对D:\OpenCV\sources4.3.0\.cache这个文件夹里面不能下载的文件进行补全,
缺失的文件会在./cache生成文件夹,
如configure阶段会ippicv,ffmpeg文件夹;

generate阶段可能有nvidia_optical_flow,xfeatures2d,data文件夹。
缺少什么文件主要是看选择那些功能进行编译。

-------------------------------------------------------------------------------------------------------

(这一步可以跳过,这个只是解决问题的流程,下面会有个人总结简便的方法)

这时来保存建造文件的路径查看CMakeDownloadLog.txt

**==================================================================**

里面有出错文件的下载地址,但是呢很可惜,国内访问不了.

实施曲线救国的道路:

cmake编译时缺失的文件下载(这个链接很重要,能不能补全文件就看他了)

好了,既然链接有了,发现网速很慢,没关系,接下来的操作才是重点(忙活了好久):

ps:打开链接,将相应的文件链接复制到到手机上,用手机的网络下载,在发送到电脑上.将文件复制到(如若科学上网请无视此操作)

需要注意的是,下载的文件需要与opencv的版本对应

ippicv报错说找不到哪个文件就下载哪个文件,这个看文件名是否一样就好了,需要注意的是下载的是否为Windows64位系统的文件.

ffmpeg这里有很多个,需要选择与opencv版本对应的下载.怎么选呢?

点开这里

选中下载opencv的版本

(或者到下载好的OpenCV源码里面的opencv/3rdparty/ffmpeg/ffmpeg.cmake这个目录下的这个文件查看)

#Binaries branch name: ffmpeg/master_20200311

得知应下载带20200311的(一定要对应)

nvidia_optical_flow,xfeatures2d,data看到带有时间的选就对了
(不带时间的里面什么都没有)

将下载的文件复制到.cache文件夹下对应的文件夹(不是直接丢到.cache这个文件夹就行了,

是放到.cache下对应的文件夹下。打字太累了,好好研究一下应该是可以放对的)。

并复制0kb文件的文件名给手动下载的文件重命名。

但是需要注意的是ffmpeg_version.cmake这个文件是不能直接手动下载的成一个文件的,

浏览器打开这个文件的网址,里面是一些文本,可以尝试将这些文本复制到电脑上的…ffmpeg_version.cmake文件中,

如果报错,那就将这个网页另存为一个文件,将保存的网页文件重命名为…(MD5)+ffmpeg_version.cmake(也就是0kb的那个.cmake文件的文件名)。

直接选择复制文本会出错的原因可能是因为格式错误。

缺失的文件夹不是一次性就出现的,

需要多次选择Configure要一步步来,

我这里第一次Configure出现了ippicv,

补全ippicv后.第二次Configure才出现ffmpeg。

这个报错不用管,影响不了大局.(Configure,generate都会报这个错,不过对编译结果都没有影响)

也可以选择在搜索栏搜索gensetupvars,然后报那个勾勾去掉。

完成Configure后

添加opencv_contrib包的这个到路径:D:/OpenCV/sources4.3.0/opencv_contrib/modules到

cmake(是opencv_contrib/modules),选择添加路径的位置如下图。


不需要Java开发就在search搜索Java,把Java相关的勾勾去掉

其他语言以此类推

cuda加速初学也不到(话是这么说但是我还是加cuda编译了)

有需要就自行选择,不过需要安装CUDA。

如果想最后只生成一个链接库文件,

而不是每个模块都产生一个链接库,需构选opencv_world.

OPENCV_ENABLE_NONFREE √ ( SIFT SURF等算法需要的√)

出现:CMake Warning at cmake/OpenCVGenSetupVars.cmake:(message):

CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install directory

选择去除 OPENCV_GENERATE_SETUPVARS选项.


点击generate

等一会会报错

用上述方法补全文件

generate完成

4.vs2019编译

open Project打开工程

或者在D:\OpenCV\build4.3.0知道OpenCV.sln用vs2019打开

生成->配置管理器


有debug和release配置选择,编译生成对应配置的库即可,

我一般用debug,我就生成debug的库。

生成安装目录,即将include,bin和lib目录提取出来,在“"中勾选install项目。

(建议只生成安装目录(INSTALL),不用勾选ALL_BUILD,毕竟我们只需要install)

需要哪种配置就选哪种配置就好,不然编译时间久。


5.添加环境变量

不想打字了…

接下来的操作看这里吧,方法大同小异,只不过操作的路径全都需要替换为

D:/OpenCV/build4.3.0/install文件夹下的操作

而不是D:/OpenCV/build4.3.0文件的操作。

例如添加的环境变量为D:\OpenCV\build4.3.0\install\x64\vc16\bin

VS2019配置OpenCV

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用clion的就是

这个库编译好后,我自己在clion上跑了.写在这里做个记录

附上cmakelists.txt的配置文件我(我这库没由生安装目录)

所以是set(OpenCV_DIR D:\\OpenCV\\build4.3.0)//应该主要是看下图文件在哪吧

cmake_minimum_required(VERSION 3.17)
project(OpenCV_trait)

set(CMAKE_CXX_STANDARD 14)

#set(OpenCV_DIR D:\\OpenCV\\build\\x64\\vc15\\lib)

set(OpenCV_DIR D:\\OpenCV\\build4.3.0)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})**

add_executable(OpenCV_trait main.cpp)
target_link_libraries(OpenCV_trait ${OpenCV_LIBS})**

上传不了,点了都没反应(应该是我不会用吧)。

需要OpenCV4.3.0的./cache百度云见。

链接:https://pan.baidu.com/s/1Tgmjtjwz5NuFOCHISBzEJA

提取码:qqz8

复制这段内容后打开百度网盘手机App,操作更方便哦


目录
相关文章
|
16天前
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
45 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
16天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
71 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
4天前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统编译OpenCV4.8源码
【10月更文挑战第17天】只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
25 4
|
2月前
|
并行计算 JavaScript 算法
opencv4.5.1+contrib+cuda编译成功,实时人头匹配,手动狗头
这篇文章介绍了如何在Windows 10上使用Visual Studio 2017成功编译OpenCV 4.5.1及其contrib模块和CUDA支持,并解决了编译过程中的问题,如项目文件无效、cmake工具问题,并添加了Qt和JavaScript支持,同时提供了参考链接。
opencv4.5.1+contrib+cuda编译成功,实时人头匹配,手动狗头
|
2月前
|
JavaScript 计算机视觉 C++
win10+vs2017+opencv4.5.1+contrib+cuda编译成功,实时人头匹配,手动狗头
这篇文章介绍了如何在Windows 10系统上使用Visual Studio 2017和OpenCV 4.5.1(含contrib模块和CUDA支持)成功编译OpenCV,并解决了编译过程中遇到的问题,如项目文件无效、cmake工具问题、添加Qt和JavaScript支持,并提供了参考链接和cmake配置文件。
win10+vs2017+opencv4.5.1+contrib+cuda编译成功,实时人头匹配,手动狗头
|
2月前
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
2月前
|
机器学习/深度学习 Java 计算机视觉
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
本文记录了使用mingw81_64编译OpenCV 4.5.5、Qt 5.15.2、VTK 9.1的详细过程,包括编译结果截图、编译步骤、遇到的问题及其解决方案,以及相关参考链接。文中还提到了如何编译boost源码为静态库,并提供了测试代码示例。
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
|
3月前
|
计算机视觉 C++
基于VS2019和Opencv4,对hsv颜色空间的图像分割原理以及实现
这篇文章介绍了基于HSV颜色空间的图像分割原理,包括HSV模型的基本概念和如何在OpenCV中通过设置HSV的色彩范围来实现图像中特定颜色的物体分割,并通过示例代码展示了在静态图像和视频流中进行颜色分割的方法。
基于VS2019和Opencv4,对hsv颜色空间的图像分割原理以及实现
|
3月前
|
计算机视觉 Windows
VS2019配置OpenCV
VS2019配置OpenCV
36 0
|
4月前
|
计算机视觉 iOS开发 C++
【OpenCV】在MacOS上源码编译OpenCV
【7月更文挑战第9天】在MacOS上源码编译OpenCV需分步进行: 1. 准备工作: 安装Xcode, Command Line Tools及依赖如CMake, Homebrew. 2. 获取OpenCV源码: 从官网下载并解压所需版本. 3. 编译OpenCV. 4. 安装OpenCV: 编译后使用`sudo make install`进行安装. 5. 验证安装: 编写简单C++程序测试OpenCV功能, 如读取并显示图片.
126 1