关于OpenCV与OpenCV_Contrib

今天想跑个代码发现安装了windows的OpenCV竟然还缺少库,在链接库当中,尝试了在属性附加依赖项当中取消从父级或者项目默认中继承和手动添加继承值的库(把opencv_aruco341修改添加到附加依赖项中),这两个操作依然无效。
在这里插入图片描述其实问题就是OpenCV,把一些不稳定的库剔除了,只保留稳定的基本库。
其实继承的库都是contrib中。
参考操作文章:
https://blog.csdn.net/weijifen000/article/details/93377143

问题:
在这里插入图片描述我用的是2020年11月下载的VS-stdiu 配合opencv3.4.1和opencv-contrib3.4.1但是编译的时候却出现“MSVC—VERSION 1928”找不到。
找到D:\opencv3.4.1\opencv\sources\cmake\OpenCVDetectCXXCompiler.txt文件
在这里插入图片描述发现做最多匹配编译到的MSVC版本号是191【0-9】也就是没有1928,匹配不了当前的vs版本。
于是我去看了opencv-3.4.9中的Compiler发现支持到1920以后
在这里插入图片描述
两种修改方式:
1.直接添加1928版本号
elseif(MSVC_VERSION EQUAL 1928)
set(OpenCV_RUNTIME vc16)
2.下载匹配的opencv版本。

二!!!!!!!!!!!!!!!!!!!
意:
ffmpeg_version.cmake 打开连接后是一个文档网页,千万不要直接复制下载!
1、 https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/ffmpeg_version.cmake" 无法直接下载,

而是直接打开了ffmpeg_version.cmake,可以右键网页选择另存为 ffmpeg_version.cmake.txt,然后再改为ffmpeg_version.cmake。这里如果自己新建一个txt,然后直接将网页上的内容拷进去,然后再该后缀为.cmake是不行的,会提示md5不匹配。
输入下面查看MD5:
cd /d D:\opencv\sources.cache\ffmpeg
certutil -hashfile ffmpeg_version.cmake MD5
在这里插入图片描述如果和他下载下来0KB的ffmpeg_version相同,那就是这个文件。

三.opencv3.4.1+cuda10+vs2019+cmake
1.安装完cuda后生成了一些opencv_cuda的库
2.但是还是确实一步分opencv_cuda库
3.https://blog.csdn.net/atpalain_csdn/article/details/90755764 照着这个教程做了一遍。cmake阶段没有问题了,但是在尝试用vs生成的时候,先依照教程先尝试生成opencv_core,发现不成功。在error中查找原因发现。
只支持VS2013到2017
在这里插入图片描述

在这里插入图片描述
算了以后开发的话还是不能用太新的编译器
VS2017下载地址:
https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes

猜你喜欢

转载自blog.csdn.net/guanxunmeng8928/article/details/110085413