具体安装细节可以参考之前写的一篇《Ubuntu下安装Cmake(编译)》
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
具体为以下环境依赖
build-essential
libgtk2.0-dev
libgtk-3-dev
libavcodec-dev
libavformat-dev
libjpeg-dev
libswscale-dev
libtiff5-dev
注意OpenCV4.2.0需要Python3.x的环境
sudo apt install python3-dev
此外还需要Numpy函数库
sudo apt install python3-numpy
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
PS:对于显示图像imshow(),正常显示几秒后报错:
Gtk-Message: 11:37:50.847: Failed to load module “canberra-gtk-module”
问题为缺少库,执行命令安装即可:
sudo apt-get install libcanberra-gtk-module
在OpenCV官网(https://opencv.org/releases/)找到OpenCV 4.2.0版本,下载Sources源码
也可以在OpenCV的GitHub中下载:
下载完成后解压进入OpenCV 4.2.0的文件目录中
新建build文件作为编译文件夹
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
终端执行
make -j8
OpenCV4版本默认不生成.pc文件,执行OPENCV_GENERATE_PKGCONFIG=ON生成。
PS:这里-j的参数是根据CPU的核数,8核-j8,4核-j4
编译完成后执行安装:
sudo make install
配置OpenCV动态库环境,程序执行时加载动态库.so的路径*
cd /etc/ld.so.conf.d/
sudo touch opencv4.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'
更新pkg-config:
sudo ldconfig
终端执行:
pkg-config --libs opencv4
pkg-config --cflags opencv4
进入Python环境,终端执行:
Python3
import cv2
OpenCV-Github官方:https://github.com/opencv/opencv_contrib
进入OpenCV4.2.0的目录,清空刚才编译的build文件夹,重新编译:
这里需要注意Opencv_contrib的路径
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 -D OPENCV_EXTRA_MODULES_PATH=/home/bigboss/opencv-4.2.0/opencv_contrib-4.2.0/modules/ ../
Github地址:https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180723/ippicv
PS:这里的下载根据自己的系统架构选择
进入**…/opencv-4.2.0/3rdparty/ippicv路径下打开ippicv.cmake**文件
修改第47行内容:将原来的下载网址替换为下载的本地文件路径:
"file:~/Downloads/" # 根据自己的实际路径参考
在编译中可能会遇到boostdesc和vgg_generated下载较慢的问题:
可以通过离线下载https://github.com/JZhong-Li/boostdesc_bgm.i
复制到到**opencv_contrib/modules/xfeatures2d/src/**目录中
终端执行make,-j的参数根据自己CPU实际内核做调整
maake -j4
如果遇到:
Makefile:165: recipe for target 'all' failed
make: *** [all] Error 2
sudo make install
sudo gedit /etc/ld.so.conf.d/opencv.conf
PS:执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加并保存
/usr/local/lib
sudo ldconfig
配置bash:
sudo gedit /etc/bash.bashrc
在最末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存使得配置生效:
source /etc/bash.bashrc
更新环境信息:
sudo updatedb
进入**/opencv-4.2.0/samples/cpp/example_cmake**
cd opencv-4.2.0/samples/cpp/example_cmake
cmake .
make
./opencv_example
执行结构: