开始之前,感叹一句:“网上的不能work的安装教程害人啊!!!”
由于被导师安排,要做一个VO,因此短暂抛弃python,转到C++环境下,由于要用SIFT及相关的特征点检测方法,因此要装opencv-contirb。
此时,我电脑上的环境为:anaconda(里面有python版的opencv) ros(别人之前做项目留下来的)
别人之前装环境装的C++版opencv(但他没装contrib) 可见电脑上opencv相关环境的复杂
由于暂时不用ros,我先进行了卸载,以后要用的话,自己完整地装一个
看了网上的教程后......我开始了第一次尝试
warning: opencv和opencv-contirb的版本一定要对应上 错了编译一定会出错
https://blog.csdn.net/qq_26239525/article/details/83059905 这是我第一次尝试看的教程
虽然标题是opencv安装 他也安装了contirb 从流程上看 这个教程还算完整
但安装中 出现了很多问题 :
1. 找不到ippicv_lnx文件
这是个很喜闻乐见的error 解决方法很简单 自己下载一个同名文件 放到路径下即可
2. xfeatures相关的一堆文件都找不到
这类问题很少见 我翻遍了谷歌才算自行解决了(但成功make后仍不能用 这个问题后续再说)
遇到这类问题的话 骚年们 就停止吧 第一条路走不通的........
这个教程里有一个错误 直接导致make中会出现很多报错
第二次尝试 这次成功了!!!!!
我一开始一直认为 关于opencv-contirb,只要把文件加到opencv目录下 再在 OPENCV_EXTRA_MODULES_PATH 中选上contirb目录即可(一直选到moudles层),但这样还不够。除此之外,一定要把OPENCV_ENABLE_NOFREE 打上勾!!!! 不然之后的编译就会报很多难以解决的bug,即使解决了 SIFT也没法使用。
注意:关于sift无法使用的error 不用按网上大多数教程中说的:降级opencv到3.4.2以下
只要讲NOFREE选项打上勾即可(cmake-gui指令 在gui中选)
总结:
1.卸载anaconda(注意看PS:)
2.按链接中的方法进行操作
3.勾选上NOFREE
即可完成opencv+opencv-contirb的编译
PS:链接中关于python3的操作是将其写为anaconda中的python路径
按理说此种方法更合理 可以在conda中使用编译版的opencv
但我一直没有操作成功 因此卸载了anaconda python路径 默认选择了系统python
关于这步 如果有朋友成功指定了anaconda 并编译成功 麻烦告诉我 我学习一下hhhhh