博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rk3399pro-EVB开发板源码编译opencv4.5.1
阅读量:4098 次
发布时间:2019-05-25

本文共 3772 字,大约阅读时间需要 12 分钟。

建议大家安装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 updateapt-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-devapt-get install libpng-devapt-get install -y \        build-essential \        cmake \        gitapt-get install -y pkg-config \        libjpeg8-devapt-get install -y libgtk2.0-dev \        libavcodec-dev \        libavformat-dev \        libswscale-dev \        libv4l-dev \        libatlas-base-dev \        gfortran \        libhdf5-devapt-get install libjpeg-devapt-get install libtiff4-dev libjasper-devapt-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 updatesudo apt install libjasper1 libjasper-dev如果还是报错第二种方法添加更新源sudo vim /etc/apt/sources.list添加deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universesudo apt updatesudo apt install libjasper1 libjasper-dev

libjasper1是libjasper-dev的依赖包

b、报错:sudo: add-apt-repository: command not found
解决办法:

sudo apt-get install python-software-propertiessudo 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 40976EAF437D05B5apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

执行上面命令后再执行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 variableNo 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

安装过程中出现的其它问题我都记录在博客中了,大家可以翻阅我之前的博客找解决方法,就不再这里赘述了。

参考博客:

你可能感兴趣的文章
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
Wipro加入世界经济论坛“新型工作标准伙伴关系”倡议
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
巴西试点全球首个采用面部识别技术的穿梭航班服务
查看>>
Bentley 软件公司完成对全球领先的地球科学三维建模软件提供商 Seequent 的收购
查看>>
Pattern Computer研制出高准确度新冠肺炎检测系统,15秒可出结果
查看>>
东芝董事长发布致股东公开信
查看>>
zooom Productions选择Esri的ArcGIS Platform,打造红牛X-Alps穿越赛实时跟踪应用
查看>>
由EIG牵头的财团与沙特阿美达成124亿美元的基础设施交易
查看>>
法拉利选择AWS作为其官方云提供商,助力公路和赛道创新
查看>>
泰雷兹为物联网连接带来变革,以“即开即用”的方式连接至全球任意蜂窝网络
查看>>
ABLIC推出业界超小型(*1)车载用高侧开关S-19682/3系列 具摄像头/天线连接诊断功能
查看>>
Elliptic Labs与博世旗下的Grow平台签署许可协议
查看>>
沙迦表彰肯尼亚人道主义机构RefuSHE在儿童和女童难民救助方面所做的开拓性贡献
查看>>
MulteFire Alliance (MFA)简化企业5G专用网络的部署途径
查看>>
希尔顿旗下多家品牌酒店重返拉斯维加斯,通过快速扩张加倍押注赌城未来
查看>>
乐高®跨界联动全新百老汇音乐剧,隆重揭幕纽约第五大道最新创意门店
查看>>
Zain Iraq通过MATRIXX Software推出突破性数字品牌oodi
查看>>
NetApp收购Data Mechanics,将加速Spot发展并优化云端数据分析和机器学习工作负载
查看>>