ubuntu18.04从源码安装opencv4.5.3

一.安装模块和依赖
安装前需要下载一些必须的依赖项。 不同版本opencv依赖会有不同,具体见官网opencv安装

sudo apt-get install cmake
sudo apt-get install gcc g++
// 安装python2支持
sudo apt-get install python-dev python-numpy
//安装python3支持
sudo apt-get install python3-dev python3-numpy

接下来,我们需要GTK支持GUI功能、摄像头支持(v4l)、媒体支持(ffmpeg、gstreamer)等。

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
# 安装gtk2支持
sudo apt-get install libgtk2.0-dev
# 安装gtk3支持
sudo apt-get install libgtk-3-dev

OpenCV附带了支持PNG、JPEG、JPEG2000、TIFF、WebP等图像格式的文件,但可能有点旧。如果要获取最新的库,可以为这些格式的系统库安装开发文件。

sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev
sudo apt-get install cmake
sudo apt-get install build-essential pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

二.安装opencv

sudo apt-get install git
git clone https://github.com/opencv/opencv.git
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES ..

CMAKE_BUILD_TYPE=RELEASE:表示编译发布版本
CMAKE_INSTALL_PREFIX:表示生成动态库的安装路径,可以自定义
WITH_GTK=ON:这个配置是为了防止GTK配置失败:即安装了libgtk2.0-dev依赖,还是报错未安装
OPENCV_GENERATE_PKGCONFIG=YES:表示自动生成OpenCV的pkgconfig文件,否则需要自己手动生成。

编译和安装

make -j4
sudo make install

三.环境变量配置
1.将OpenCV的库添加到系统路径
方法一:配置ld.so.conf文件

sudo gedit /etc/ld.so.conf

在文件中加上一行 include /usr/loacal/lib,这个路径是cmake编译时填的动态库安装路径加上/lib

方法二:手动生成opencv.conf文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

是一个新建的空文件,直接添加路径,同理这个路径是cmake编译时填的动态库安装路径加上/lib

/usr/local/lib

以上两种方法配置好后,执行如下命令使得配置的路径生效

sudo ldconfig

2. 配置系统bash
因为在cmake时,选择了自动生成OpenCV的pkgconfig文件,在/usr/local/lib/pkgconfig路径可以看到文件,确保文件存在,执行如下命令

sudo gedit /etc/bash.bashrc

在文末添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存退出,然后执行如下命令使配置生效

source /etc/bash.bashrc

查看版本

pkg-config --modversion opencv4

成功出处

你可能感兴趣的:(Ubuntu,and,ros,opencv,ubuntu,python)