瑞芯微RK3588,交叉编译opencv

4 篇文章 1 订阅
4 篇文章 0 订阅

这里以opencv-4.6.0为例子。

一、准备工作

下载:
opencv-4.6.0
opencv_contrib-4.6.0
.cache 提取码:0816
eigen-3.3.9.
ffmpeg-6.0
yasm-1.3.0
交叉编译器_gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz

二、安装ffmpeg

2.1、安装yasm

tar zxvf yasm-1.3.0.tar.gz #解压
cd yasm-1.3.0 #进入目录 
./configure #配置 
make && make install #编译安装

2.2、安装ffmpeg

tar -zxvf ffmpeg-6.0.tar.xz
cd ffmpeg-6.0
./configure --enable-shared --prefix=/usr/local/ffmpeg
或者(未验证)
./configure --enable-shared --enable-ffplay --enable-ffserver --prefix=/usr/local/ffmpeg
make
make install

2.3、添加ffmpeg环境

sudo vim /etc/ld.so.conf.d/ffmpeg.conf
添加:
/usr/local/ffmpeg/lib
# 刷新
sudo ldconfig
sudo vim /etc/profile
# 添加
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig
# 刷新
source /etc/profile

注意:不要关闭当前终端!后面编译opencv也在当前终端。这里很重要!

# 查看ffmpeg版本
ffmpeg -version

三、编译opencv

cd your opencv dir
unzip opencv-4.6.0.zip
unzip opencv_contrib-4.6.0.zip
cd opencv-4.6.0

unzip .cache.zip  #将.cache解压到opencv-4.6.0下

mkdir build
mkdir build/aarch64_1
mkdir install
mkdir install/aarch64_1
cd build/aarch64_1
#安装一些依赖
sudo apt install cmake git libavcodec-dev libavformat-dev libswscale-dev \
python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev \
libjasper-dev libdc1394-22-dev 
sudo apt install libgtk2.0-dev
sudo apt install pkg-config

安装libgtk2.0-dev时的报错,解决方案

# 配置
cmake \
-D CMAKE_BUILD_TYPE=RELEASE  \
-D CMAKE_C_COMPILER=gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc \
-D CMAKE_CXX_COMPILER=gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_CXX_FLAGS=-fPIC \
-D CMAKE_C_FLAGS=-fPIC \
-D CMAKE_EXE_LINKER_FLAGS="-lpthread -ldl" \
-D ENABLE_PIC=ON \
-D WITH_1394=OFF \
-D WITH_ARAVIS=OFF \
-D WITH_ARITH_DEC=ON \
-D WITH_ARITH_ENC=ON \
-D WITH_CLP=OFF \
-D WITH_CUBLAS=OFF \
-D WITH_CUDA=OFF \
-D WITH_CUFFT=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_HALIDE=OFF \
-D WITH_HPX=OFF \
-D WITH_IMGCODEC_HDR=ON \
-D WITH_IMGCODEC_PXM=ON \
-D WITH_IMGCODEC_SUNRASTER=ON \
-D WITH_INF_ENGINE=OFF \
-D WITH_IPP=OFF \
-D WITH_ITT=OFF \
-D WITH_JASPER=ON \
-D WITH_JPEG=ON \
-D WITH_LAPACK=ON \
-D WITH_LIBREALSENSE=OFF \
-D WITH_NVCUVID=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENCLAMDBLAS=OFF \
-D WITH_OPENCLAMDFFT=OFF \
-D WITH_OPENCL_SVM=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENMP=OFF \
-D WITH_OPENNNI=OFF \
-D WITH_OPENNNI2=OFF \
-D WITH_OPENVX=OFF \
-D WITH_PNG=ON \
-D WITH_PROTOBUF=OFF \
-D WITH_PTHREADS_PF=ON \
-D WITH_PVAPI=OFF \
-D WITH_QT=OFF \
-D WITH_QUIRC=OFF  \
-D WITH_TBB=OFF \
-D WITH_TIFF=ON \
-D WITH_VULKAN=OFF \
-D WITH_WEBP=ON \
-D WITH_XIMEA=OFF \
-D CMAKE_INSTALL_PREFIX=../../install/aarch64_1  \
-D WITH_GTK=OFF \
-D WITH_EIGEN=ON \
-D EIGEN_INCLUDE_PATH="path/eigen-3.3.9" \
-D OPENCV_EXTRA_MODULES_PATH="../../../opencv_contrib-4.6.0/modules" \
-D BUILD_ZLIB=ON \
-D ZLIB_INCLUDE_DIR="../../3rdparty/zlib" \
-D OPENCV_GENERATE_PKGCONFIG=ON \
../..

以上,有路径的地方都需要根据自己的实际情况进行修改。
CMAKE_C_COMPILER=
CMAKE_CXX_COMPILER=
CMAKE_INSTALL_PREFIX=
EIGEN_INCLUDE_PATH=
OPENCV_EXTRA_MODULES_PATH=
ZLIB_INCLUDE_DIR=

# 配置好ffmpeg后,终端显示以下。
--   Video I/O:
--     FFMPEG:                      NO
--       avcodec:                   YES (60.3.100)
--       avformat:                  YES (60.3.100)
--       avutil:                    YES (58.2.100)
--       swscale:                   YES (7.1.100)
--       avresample:                NO
--     GStreamer:                   NO
--     v4l/v4l2:                    YES (linux/videodev2.h)

#编译
make -j10
make install

四、移植

打包install下面的aarch64_1,并将其放入RK3588上,然后解压。

# 例如,解压的路径是/home/pi/lib/aarch64_1
sudo vim /etc/ld.so.conf.d/opencv.conf
添加:
/home/pi/lib/aarch64_1/lib

#生效
sudo ldconfig

五、成品

提取码0816

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
RK3588上进行交叉编译OpenCV的方法如下: 1. 在自己的Ubuntu系统上安装交叉编译工具链,可以通过以下命令安装: ``` sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu ``` 2. 下载OpenCV源代码并解压缩,可以从OpenCV官方网站或者GitHub上获取最新版本的源代码。 3. 进入解压缩后的OpenCV目录,并创建一个用于编译的目录: ``` cd opencv mkdir build cd build ``` 4. 配置交叉编译环境,使用以下命令: ``` cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/path/to/install -D CMAKE_TOOLCHAIN_FILE=/path/to/toolchainfile .. ``` 注意将`/path/to/install`替换为你希望安装OpenCV的路径,将`/path/to/toolchainfile`替换为你的交叉编译工具链的路径。 5. 执行以下命令开始编译: ``` make -j$(nproc) ``` 这将使用多个线程进行编译,加快编译速度。 6. 编译完成后,将编译好的库文件和头文件拷贝到RK3588上: ``` scp libopencv_core.so libopencv_imgproc.so libopencv_highgui.so user@rk3588:/path/to/destination scp -r ../modules/core/include/opencv4 user@rk3588:/path/to/destination/include ``` 将`user@rk3588`替换为你的RK3588板子的用户名和IP地址,将`/path/to/destination`替换为你希望保存库文件和头文件的目标路径。 7. 在RK3588上使用交叉编译后的OpenCV库进行开发,可以通过添加以下编译选项来链接OpenCV库: ``` -L/path/to/destination -lopencv_core -lopencv_imgproc -lopencv_highgui ``` 将`/path/to/destination`替换为你保存OpenCV库文件的路径。 通过以上步骤,你可以在RK3588上进行交叉编译OpenCV,并将编译好的库文件和头文件拷贝到板子上进行开发使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值