rk3399pro-EVB开发板源码编译opencv4.5.1

建议大家安装opencv4.0.1及以前的版本,因为opencv4.0.1以后的版本要求numpy>1.19.3,而rknn-tookit的whl包要求numpy==1.16.3,我是安装完opencv4.5.1 才装的rknn-toolkit1.6 目前开发板numpy=1.20.1,每次pip安装其它包时都会出现rknn 依赖的numpy版本不匹配错误,忽略它使用rknn还是可以用的,不知道之后会不会有什么问题(ps:懒癌犯了,到时候再重新编译低版本的opencv吧)
1、安装依赖库
我这里是想在opencv中调用gstreamer,如果不想用这个功能的可以不用安装gstreamer相关包。

apt-get update
apt-get install -y libgstreamer1.0-0 \
            gstreamer1.0-plugins-base \
            gstreamer1.0-plugins-good \
            gstreamer1.0-plugins-bad \
            gstreamer1.0-plugins-ugly \
            gstreamer1.0-libav \
            gstreamer1.0-doc \
            gstreamer1.0-tools \
            libgstreamer1.0-dev \
            libgstreamer-plugins-base1.0-dev

apt-get install libpng-dev
apt-get install -y \
        build-essential \
        cmake \
        git
apt-get install -y pkg-config \
        libjpeg8-dev
apt-get install -y libgtk2.0-dev \
        libavcodec-dev \
        libavformat-dev \
        libswscale-dev \
        libv4l-dev \
        libatlas-base-dev \
        gfortran \
        libhdf5-dev
apt-get install libjpeg-dev
apt-get install libtiff4-dev libjasper-dev
apt-get install -y libtbb-dev libeigen3-dev

2、源码下载,编译和安装

git clone https://github.com/opencv/opencv.git #下载最新版本opencv源码
mkdir build && cd build # 创建build目录并切换进去
cmake -D CMAKE_BUILD_TYPE=RELEASE -DOPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local  -D INSTALL_C_EXAMPLES=OFF  -D INSTALL_PYTHON_EXAMPLES=ON   -D BUILD_EXAMPLES=ON  -D PYTHON_EXECUTABLE=/usr/bin/python3  -D PYTHON_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.7/dist-packages/numpy/core/include/  -D WITH_GSTREAMER=ON -D WITH_GTK=ON -D WITH_GTK_2_X=ON -D WITH_GTHREAD=ON -D WITH_TBB=ON -D WITH_OPENGL=ON  ..

因为要用python接口调用opencv,所有指定了python3的环境目录,如果只使用c++接口的话可以去掉python相关的选项。-D WITH_GSTREAMER=ON是为了开启gstreamer。
编译和安装

make -j4 #4核编译
make install #安装,卸载可用make uninstall

测试
接下来可以在c++和python中测试opencv是否安装成功 ,网上案例很多,就不再这里贴代码了。
3、报错问题解决方案
a、安装opencv但是在安装依赖包的过程中,有一个依赖包,libjasper-dev在使用命令
sudo apt-get install libjaster-dev
提示:errorE: unable to locate libjasper-dev
解决办法:

第一种方法
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
如果还是报错
第二种方法
添加更新源
sudo vim /etc/apt/sources.list
添加
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
sudo apt update
sudo apt install libjasper1 libjasper-dev

libjasper1是libjasper-dev的依赖包
b、报错:sudo: add-apt-repository: command not found
解决办法:

sudo apt-get install python-software-properties
sudo apt-get install software-properties-common

c、sudo apt-get update 报错:
W: GPG error: http://security.ubuntu.com/ubuntu xenial-security InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
解决办法:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

注:如果此时出现下面的错
Executing: /tmp/apt-key-gpghome.oXLFXgATUw/gpg.1.sh --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
gpg: connecting dirmngr at '/run/user/0/gnupg/d.froeehpqidna3zbpkxk9znn5/S.dirmngr' failed: No such file or directory
gpg: keyserver receive failed: No dirmngr

需执行:sudo apt install dirmngr

执行上面命令后再执行sudo apt-get update即可。
d、c++测试opencv报错:

命令:g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv` 
报错:Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

解决办法:
https://blog.csdn.net/PecoHe/article/details/97476135
e、python测试opencv报错:

cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:627: error: (-2:Unspecified 
error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on 
Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'

解决办法:pip install opencv-contrib-python

安装过程中出现的其它问题我都记录在博客中了,大家可以翻阅我之前的博客找解决方法,就不再这里赘述了。
参考博客:
https://blog.csdn.net/qq_40199447/article/details/109309186
https://blog.csdn.net/yuanlulu/article/details/88917603
https://blog.csdn.net/GerZhouGengCheng/article/details/107814841?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6.control

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值