欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu20.04 安装OpenCV4.5.2

程序员文章站 2022-07-14 20:12:31
...

第一步:准备工作

  • 安装依赖
sudo apt install cmake
sudo apt install gcc g++
sudo apt install libxslt1-dev libffi-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
sudo apt install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt install zlib1g-dev libsqlite3-dev tk-dev
sudo apt install libssl-dev openssl libffi-dev
sudo apt install libblas-dev liblapack-dev gfortran
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install  libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
sudo apt install nasm libtool
sudo apt install libgtk-3-dev libgtk2.0-dev libavutil-dev libswscale-dev libasound2-dev libspeex-dev
sudo apt install v4l-utils libopenexr-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt install python3-dev python3-numpy
  • 安装openjpeg。 github地址:https://github.com/uclouvain/openjpeg
cd xxx  # 源码解压路径
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
sudo make install

安装工作

  • 下载源码(直接下载git是预览版,去releases下载是正式版)。opencvopencv_contrib

  • 解压到你想要的任意文件夹,但是建议两个文件夹解压后放同级路径。

  • 修改一下opencv下面的CMakeLists.txt文件,开头加入下面这句,防止可能发生的找不到系统so文件。

set(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu")
安装到系统环境
  • 如果要把opencv安装到系统环境,默认安装路径为/usr/local。默认安装到Python2,当然我们需要用它安装到python3。下面以python3.9为例。

  • 直接用apt安装python3.9

apt search python3.9  # 搜索python3.9
sudo apt install libpython3.9 libpython3.9-dev python3.9-dev python3.9
  • 安装配套的pip
sudo apt install wget
wget "https://bootstrap.pypa.io/get-pip.py"
/usr/bin/python3.9 get-pip.py install
- 由于此pip没有添加到系统环境,所以在运行的时候需要用python -m pip的方式才能安装
- 并且我的默认python环境为conda环境,所以这里需要把系统环境的python所有路径都指出来。
- 正式使用时,还是请直接安装到系统的python3环境就行了,这里只是演示。
  • 安装numpy
/usr/bin/python3.9 -m pip install numpy
  • 查看numpy的位置
/usr/bin/python3.9 

Python 3.9.0+ (default, Oct 20 2020, 08:43:38) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import numpy as np
>>> print(np.__version__)
1.20.1
>>> print(np.__file__)
/home/tlntin/.local/lib/python3.9/site-packages/numpy/__init__.py
  • 进入opencv解压的文件夹
cd xxx
mkdir build  # cmake都是在build路径正式执行编译,所以需要手动创建
cd build
  • 编写cmkae配置命令
cmake -D CMAKE_BUILD_TYPE=Release \
-D OPENCV_EXTRA_MODULES_PATH=/home/tlntin/文档/ProgramFiles/opencv_contrib/modules \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.9 \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.9 \
-D PYTHON3_LIBRARY=/usr/lib/python3.9/config-3.9-x86_64-linux-gnu/libpython3.9.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/home/tlntin~/.local/lib/python3.9/site-packages/numpy/core/include  \
-D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local \
..
# 注意:1.第二行opencv_contrib改成你的路径。2.最后一行的..不可省略,因为需要编译的其实是上一个路径。3. numpy路径记得改成你的。
  • 执行编译
make -j8
  • 安装编译好的文件
sudo make install
  • 配置opencv
sudo gedit /etc/ld.so.conf.d/opencv.conf
# 填入下面的信息
/usr/local/lib
# 保存配置文件
sudo ldconfig
sudo gedit /etc/bash.bashrc   # 如果是zsh终端,建议在/etc/profile也写一下
# 写入下面的信息
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH
  • 更新配置
source /etc/bash.bashrc
sudo updatedb
  • 测试一下
pkg-config --modversion opencv4

# 输出
4.5.2
  • 再测试一下安装到python里面的效果
/bin/python3.9

# 输出信息
Python 3.9.0+ (default, Oct 20 2020, 08:43:38) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.2-pre'
安装到anaconda环境
  • 先创建anaconda虚拟环境
conda create -n opencv python==3.9
conda activate opencv
  • 安装numpy
conda install numpy
  • 进入opencv路径
cd xxx
cd build
rm install_manifest.txt  # 删除配置路径,待会重写生成配置文件
  • 【可选操作】如果你下面编译的和上面编译的都是python3.9,那就可以直接利用上面的文件编译,如果不是,最好先清理一下缓存再继续。
make clean  # 清空编译缓存
cd ..
rm -r build  # 清空编译文件夹
mkdir build  # 重新创建编译文件夹
cd build  # 再次进入编译文件夹
  • 配置命令
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_EXTRA_MODULES_PATH=/home/tlntin/文档/ProgramFiles/opencv_contrib/modules \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") \
-D PYTHON3_EXECUTABLE=$(which python) \
-D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
..

# 同样,记得修改一下第二行的路径就行了,其它由于已经**了anaconda环境,所有都会自动配置
# 最后..不要漏掉。
# 这里参考了知乎大佬的,加了闭源驱动和cuda gpu支持,不过编译时间会变长一些。
# 知乎原贴:https://zhuanlan.zhihu.com/p/147595002
  • 最后安装即可,由于是安装到conda虚拟环境内,所以不需要sudo 权限。
make install
  • 最后,测试一下(记得**conda环境)。
python

Python 3.9.0 | packaged by conda-forge | (default, Nov 26 2020, 07:57:39) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.2-pre'
相关标签: Linux学习 OpenCv