文章目录
1. 下载OpenCV和OpenCV-contrib
- 注意:下面两个需要下载同一版本。
- 下载OpenCV:OpenCV官网,选择source下载。
- 下载OpenCV-contrib:OpenCV-contrib,选择zip下载。
2. 安装依赖包
sudo apt-get update
sudo apt-get upgrade
//依赖包
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 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
- 若报错如下:
XXX@XXX:~/Files/opencv-3.1.0$ sudo apt-get install libjasper-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libjasper-dev
- 执行:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
3. 安装opencv和opencv_contrib
3.1 解压
sudo unzip opencv-3.4.13.zip
sudo unzip opencv_contrib-3.4.13.zip
3.2 将解压后的contrib文件移动至opencv-3.4.13文件下
sudo cp -r opencv_contrib-3.4.5 opencv-3.4.5
3.3 在opencv-3.4.5文件夹中新建build文件夹用于后续编译和生成
cd opencv-3.4.5 #进入opencv文件夹
sudo mkdir build #建立build文件夹方便后续操作
3.4 进入bulid文件夹并进行第一次cmake
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.13/modules -DOPENCV_ENABLE_NONFREE=True ..
-
这步可能会卡在
IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
,附上手动下载链接:ippicv_2020_lnx_intel64_20191018_general.tgz
在“/opencv3.4.13/3rdparty/ippicv/ippicv.cmake”注释掉第 16 行,添加一行:set(OPENCV_ICV_NAME "file:///home/自己的用户名/下载/ippicv_2020_lnx_intel64_20191018_general.tgz") # 手动添加
-
编译
sudo make -j16 #j后面的数字代表用几个线程编译,此为16线程
缺少文件
将这些文件下载然后放置到opencv_contrib/modules/xfeatures2d/src/ 路径下即可。
当然,这些文件的下载路径可以在cmake//日志中查看,直接复制其下载地址到网页可以看该到文件的源码,直接拷贝源码并生成同名文件然后放置到opencv_contrib/modules/xfeatures2d/src/ 路径下即可。
或者从百度网盘中下载,然后解压并将这些文件放置到opencv_contrib/modules/xfeatures2d/src/ 路径下即可。
百度云链接:https://pan.baidu.com/s/1I4MhbkhP0Au6na2QZdjpGg
提取码:a2c1
3.5 安装
sudo make install
报错如下:
解决方法:
百度云链接:https://pan.baidu.com/s/1bN1iXJZbA7Fx59rUhnGYiw 密码:wjl1
放到ippicv文件夹中,再次安装,成功。
4. 测试
- 进入目录opencv-3.4.6/samples/cpp/example_cmake
cmake .
make
./opencv_example
- 效果如下:
- 在 Ubuntu16.04 下安装时,测试的时候报错如下:
原因是环境没有配置,Ubuntu18.04下没有出现这个问题,参考解决方案。./opencv_example: error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file: No such file or directory
5. 后续问题
在Ubuntu18.04下python3 import cv2
时报错如下:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
然而使用python2可以正确import,解决方法(清华源):
pip install opencv-python
参考
[1] Ubuntu 18.04.2 下源码安装OpenCV 3.4.6与opencv_contrib-3.4.6笔记
[2] ubuntu 18.04 安装opencv3.4.5+opencv_contrib
[3] 源码编译opencv卡在IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz解决办法
[4] OpenCV编译遇到的一个常见错误-./bin: error while loading shared libraries: libopencv_highgui.so.3.2: cannot open