(一)文件准备:
1.opencv-3.3.1.zip
https://github.com/opencv/opencv/archive/3.3.1.zip
2.opencv_contrib-3.3.1.zip
https://github.com/opencv/opencv_contrib/archive/3.3.1.zip
其他OpenCV版本源码gitee快速下载方法
git clone -b 3.4.10 https://gitee.com/mirrors/opencv.git
git clone -b 3.4.10 https://gitee.com/mirrors/opencv_contrib.git
只需把上面-b后面的版本号改成对应版本号即可。
另一种下载方法:
https://opencv.org/releases/
这是opencv下载的官方网站。
下载source压缩包
opencv_contrib下载 :https://github.com/opencv/opencv_contrib
在Tags里找到相应版本下载,注意版本要与opencv一致(这里就是opencv_contrib3.4.13)
下载好解压后,将opencv_contrib3.4.13放在opencv3.4.13文件夹里面(为方便后续操作,可将上面两个文件夹分别命名为opencv和opencv_conrib)。
(二)安装依赖包:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config
(三)编译
1.解压下载好的包;
unzip opencv-3.3.1.zip
unzip opencv_contrib-3.3.1.zip
2.解压完后需要将opencv_contrib.zip提取到opencv目录下,同时在该目录下新建一个文件夹build
cp -r opencv_contrib-3.3.1 opencv-3.3.1 #复制opencv_contrib到opencv目录下
cd opencv-3.3.1
mkdir build #新建文件夹build
3.现在进入到opencv-3.3.1目录下,查看文件结构:
#ls
3rdparty cmake data LICENSE platforms
apps CMakeLists.txt doc modules README.md
build CONTRIBUTING.md include opencv_contrib-3.3.1 samples
4.进入build目录,并且执行cmake生成makefile文件:
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/files/opencv-3.3.1/opencv_contrib-3.3.1/modules/ …
比如我当时的实际安装命令:
cmake -DENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_BUILD_TYPE=Release -DBUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/airobot/opencv-3.4.3/opencv_contrib-3.4.3/modules/ …
注意:OPENCV_EXTRA_MODULES_PATH就是你 opencv_contrib-3.3.1下面的modules目录,请按照自己的实际目录修改地址。还有后面的两点不可省略!!
接下来就是漫长的等待了…
生成完毕提示:
5.在cmake成功之后,就可以在build文件下make了:
接下来就是更漫长的等待了…具体时间因人而异,我的电脑跑了20分钟。如果看到下图,说明成功了,再make install就ok了!
6.链接库共享
编译安装完毕之后,为了让你的链接库被系统共享,让编译器发现,需要执行管理命令ldconfig:
问题解决:
但是可能会遇到这种问题:
这是因为一些文件没有下载下来,不只此处的boostdesc_bgm.i,还有
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
下载缺失文件的网址:https://download.csdn.net/download/bj233/14952029
然后拷贝到xfeatures2d/src下面。
然后,前面的问题没有了,到99%时,又有新问题了:
解决办法:这类错误要看错误前面的他给出了源码中哪里有问题,找到错误提示处的文件源码,比如这里(上图):…/.opencv/modules/stitching/include/opencv2/stitching/detail/src/matchers.cpp中的52行有错,一般都是给的绝对路径不准确没有找到那个对应的文件。后面给出cuda.hpp的位置,把这个绝对路径直接代替报错处52行给出的不准确路径即可,如下图:
类似的,下面这个错误就是找到…/opencv/modules/stitching/src/precomp.hpp这个路径下的这个文件,把里面91行的
#include “/opencv2/xfeatures2d/cuda.hpp”
修改成
#include “/home/bj(你的用户名)/opencv/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp”*(这个就是cuda.hpp这个文件的绝对路径
修改好后保存关闭。
下面这个错误是路径里的features2d.cpp前面少了一个x
改好后,再make,有错继续改,直到100%
4、执行make install命令
sudo make install
5、添加路径
sudo vim /etc/ld.so.conf.d/opencv.conf
若找不到vim命令则说明你之前没装,需要自己安装以下,打开一个终端,输入:
sudo apt install vim
然后在打开文件中添加如下内容:
/usr/local/lib
复制粘贴即可,然后保存退出(依次输入:wq,冒号是要输入的部分哦)
之后再终端输入:
sudo ldconfig
使其保存并生效。
再在终端输入
sudo vim /etc/bash.bashrc
打开文件后在末尾输入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,终端输入:
source /etc/bash.bashrc
至此,opencv及opencv_contrib安装配置完成了!
四、测试
进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:
cmake .
make
./opencv_example
运行结果依次为:
出现上图,你的摄像头打开了,就可以了
参考资料:
https://blog.csdn.net/bj233/article/details/113351023
https://blog.csdn.net/qq_38236355/article/details/88864023