目录
前言
python用户
c++用户
一,下载cmake,opencv,opencv_contrib,Visual Studio
1,下载安装cmake
2,下载opencv,opencv_contrib
3,下载Visual Studio
二,编译opencv和opencv_contrib
1,cmake编译
2,VS编译生成,并配置opencv_contrib环境
三,总结
前言
用不上opencv_contrib里面算法的,建议暂时先不用配置opencv_contrib,这个直接用opencv和用opencv加上contrib的环境配置难度差异较大(python用户当我没说)。
python用户
cmd终端输入:
pip install opencv-python
pip install opencv-contrib-python
c++用户
一,下载cmake,opencv,opencv_contrib,Visual Studio
1,下载安装cmake
①官网下载:Download | CMake
·
根据自己的电脑选择合适的版本下载,一般都为64位。下载好后直接安装,点next的画面我就不展示了,我展示需要更改的。
②如图
③更改储存位置
④终端输入cmake验证
2,下载opencv,opencv_contrib
① opencv官方下载:https://github/opencv/opencv/releases
根据自己的需求下载对应的版本,windows下载exe版本就行,省却解压步骤,注意解压的路径,建议选择一个盘新建一个opencv文件夹,用来放opencv和opencv_contrib。
② opencv_contrib官方下载: https://github/opencv/opencv_contrib/tags
注意和自己下载的opencv版本对应,这个只有源码方式,不过原理都一样,
3,下载Visual Studio
① 官方链接:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux
个人学习建议直接下社区版,也不用去费劲破解啥的了,对于个人开发来说,没有区别。
②下载完成,点击安装之后等待一会就行,根据自己需要进行选择,选少了也没事,后面还可以再添加,但是选多了,就实实在在占内存了。
③选择完后,点击语言包选择语言
④选择安装位置,刚买的笔记本,就一个盘,所以只能放c盘。有需要更改位置的可以选择更换位置。
⑤点击安装(我是装好了,回来截的图,正常的会显示安装),然后耐心等待,包很大
⑥想要更改配置的,可以在左下角开始出找Visual Studio Installer,点击进行修改
二,编译opencv和opencv_contrib
1,cmake编译
①在安装或源码存放目录下,新建build文件夹
②打开cmake文件夹,选择opencv文件夹中的source文件夹和build文件夹
③点击configure选择配置,然后弹出配置框,第一项选择自己的Visual Studio版本,后面两项不用填
④再次点击configure,它会运行source文件中cmakelist进行下载配置(第一个框,第一次运行时会显示变成红色,再点一次configure就没了),不过这一步,应该没有人能一次性下载完的,都会报错下载不了,原因应该是被墙了,但是科学上网有时候有用(有条件可以多试试)。如果科学上网还是不行,就得老老实实的手动下载(建议耐心一点,有点麻烦),复制报错的CMakeDownloadLog.txt路径。
⑤打开CMakeDownloadLog.txt,查看报错
⑥打开对应的文件夹,可以看到下载的文件为0kb,所以需要手动下载
⑦报错文件夹中所下载的网址被墙得很死,所以去github下载比较好。
下载地址:https://raw.githubusercontent/opencv/opencv_3rdparty/
根据报错的信息选择对应的文件 以上文报错为例
⑥改名,将下载文件改为所缺文件夹中的名字
此处为了对比才放一起,实际操作最好先改名再移到所需文件夹中
⑦再运行Corfigure,会发现红色警告少了一个,然后④~⑦继续解决,直到没有红色警告。熟悉之后可一次性下载多个,然后替换,注意一下对应关系别混就行,有的报错文件没有版本要求就直接下载最新的一版,不用太纠结。
⑧编译opencv_contrib,做下面三项改动,勾选BUILD_opencv_world、OPENCV ENABLE NONFREEM和添加opencv_contrib中的moudle路径 。如果需要cuda加速和cudann使用的接着勾选。不需要则直接进行⑨步
⑧-1,cuda加速的前提是要安装好cuda和对应的cudann版本,并且具有英伟达显卡。不满足条件,勾选会报错。搜索cuda,全部选中,然后点击configure再进行配置
⑧-1-1,首先检查是否找到cuda和cudann,如果没找到则检查版本对应以及环境配置,可参考cuda环境配置,进行重新配置。注意重新配置好后,要删除build文件夹重新编译,否则还是检测不到,不过由于不能下载的文件已经备齐所以不会费多少时间。成功结果如图:
⑧-1-2,然后查看爆红,还是查看CMakeDownloadLog.txt,去github下载对应文件防止对应文件夹。解决完下载报错之后,下面这个报错可以忽略。
⑧-2查询显卡算力,在cmd终端运行(安装cuda路径)C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\extras\demo_suite路径下的deviceQuery.exe。我查询结果为8.6
⑧-3,将CUDA _ARCH_BIN中比自己小的算力都删掉(但不知道为啥现在RTX3090都出来好久了,cuda加速的算力好像还在3060范围,我的笔记本3060显卡算力竟然在最高段),借用一下大佬的图,这一栏我为空,然后自己加的。
⑨点击configure编译,不出意外的话,还是会有很多红色警告,解决警告的方法还是同④~⑦一样操作。不过我出意外了,科学上网下载github文件,然后没有关。两次configure,连续编译就结束了,没有红色警告,巴适。
⑩解决完红色警后,点击Generate,然后点击Open Project。
2,VS编译生成,并配置opencv_contrib环境
① 按照图片操作,点击生成解决方案,在将opencv和opencv_contrib的库结合在一起。生成后,可能会失败一个,影响不大。
②新打开一个VS界面。新建项目,然后添加库到项目编译的环境中。添加include头文件,添加成功后如果有测试代码会发现,关于opencv_contrib和opencv的头文件不再报错
③添加lib 文件,其实很多教程都使用链接器巴拉巴拉的(如果出现main.obj文件报错,则要按照③-1添加),我试了很多次,在库目录添加lib文件夹就行。
③-1,后续博主测试的时候发现,有的代码,添加了lib文件夹,但是运行的时候还是链接不到opencv的lib文件,中间文件.obj会报错:error LNK2019: unresolved external symbol,需要在链接器里将lib文件夹中的lib再次链接才行,报错就按如下操作。(以防后续出错,可以直接加上)
④添加bin中的dll文件,有些教程没有这一步非常坑人,不过我也很疑惑,为啥bin文件路径添加到各个地方都没有用(系统环境变量都加过),它就是找不到,打不开等等(望大佬告知)。只能将生成的bin文件目录下的dll文件移到windows/system32下才能被检测到。
⑤测试自己的代码,调用#include"opencv2/xfeatures2d.hpp"等等,
三,总结
换了新电脑得重新配环境,不过本来是用不上opencv了的。但是yolov5学着学着,发现需要用opencv dnn部署yolov5的c++环境,既是为了配合相机的官方库,也是为了加速yolo模型推理。不过最好希望能搞懂tensort,网上都说这个部署加速最强。
记录一下,希望以后配置环境能快一点。。。
有问题,欢迎评论区留言讨论。
四,参考博客
win10+vs2017+opencv4.5.0+opencv_contrib-4.5.0+cuda源码编译详细教程_fengxinzioo的博客-CSDN博客_opencv4.5编译
更多推荐
windows安装配置opencv opencv_contrib
发布评论