在rk3399开发板上编译opencv3.4.15

一、环境

rk3399 ARM架构芯片、ubuntu 18.04 bionic、gcc 版本7.5、opencv3.4.15版本

二、编译步骤

参照https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/demo_OpenCV_support.html

1、搭建python3.7虚拟环境
依次安装gcc和cmake等编译环境 # 安装python3.7-tk 和 python3.7-dev # 安装virtualenv虚拟环境

sudo apt install gcc cmake git build-essential \
python3-tk python3.7-dev \
virtualenv

2、创建python3.7虚拟环境

virtualenv -p /usr/bin/python3.7m /home/firefly/venv

使用虚拟环境,如果想退出可以在终端输入 deactivate

source /home/firefly/venv/bin/activate

3、安装Opencv所需的环境包

安装编译环境、gtk包和相关编解码库

sudo apt install cmake build-essential libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libjasper-dev

注意1:阿里云的安装源没有libjasper-dev,得把安装源更换为清华源,安装完libjasper-dev后,建议换回原来阿里云的安装源,听说清华源的包较旧。
参考 https://blog.csdn.net/u011622208/article/details/105252720
编辑源 vi /etc/apt/sources.list

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe

解决是靠全部更改为老版本的清华源 替换原有 /etc/apt/sources.list

sudo apt update
apt install libjasper1 libjasper-dev

注意2 如果安装了rknn_toolkit(or lite)则不需要再安装Python-numpy,否则会导致rknn_toolkit(or lite)无法使用

sudo apt install python-numpy

支持Gstreamer API

sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

4、下载Opencv

创建文件夹

mkdir opencv
cd opencv

下载 opencv-3.4.15.zip

wget https://github.com/opencv/opencv/archive/refs/tags/3.4.15.zip
unzip opencv-3.4.15.zip

5、配置

mkdir build
cd build

让 OpenCV 和 Python3 之间建立联系

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D WITH_GSTREAMER=ON \
-D 	PYTHON_DEFAULT_EXECUTABLE=$(python -c "import sys; print(sys.executable)")\
-D PYTHON3_EXECUTABLE=$(python -c "import sys; print(sys.executable)")  \
-D PYTHON3_NUMPY_INCLUDE_DIRS=$(python -c "import numpy; print (numpy.get_include())")  \
-D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")  \
../opencv-3.4.15

6、编译安装

如果板子内存不超过2G,建议不超过-j4

make -j6

安装的过程需要sudo权限

sudo make install

(愉快地编译完成,没有任何错误发生。而同样的opencv3.4.15源文件在x86的交叉编译环境下,问题非常多,需要逐个解决。)
7、最后,在使用opencv库时,需要把libjasper.so.1.0.0拷贝到opencv的库目录,建立相应的软链接,一起使用。

三、题外

一样的opencv3.4.15源文件在ubuntu18.04,x86的交叉编译环境下,错误百出,问题非常多,需要逐个解决。参考另外一篇文章。

你可能感兴趣的:(ubuntu,ubuntu,linux,opencv,arm开发)