[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9

目录

一、适用软硬件环境

二、下载OpenCV、FFMPEG源码

三、设置交叉工具编译链接路径(重要)

三、交叉编译ffmpeg源码

五、交叉编译OpenCV源码

六、部署安装相关lib库

七、测试运行相关lib库


一、适用软硬件环境

软件虚拟机:Ubuntu 18.04 topeet(北京迅为搭建)

软件交叉编译工具链:/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu

硬件开发板:北京迅为3568开发板、Firefly ROC-RK3588S-PC开发板等

编译目的:读取JPG图片数据,读取MP4视频数据,暂不支持视频编码(没有交叉编译x264)

二、下载OpenCV、FFMPEG源码

OpenCV版本:opencv-3.4.3,FFMPEG下载官网:https://opencv.org/releases/,本文版本下载链接:https://github.com/opencv/opencv/archive/3.4.3.zip

FFmpeg版本:ffmpeg-4.2.9,FFMPEG下载官网:http://ffmpeg.org/download.html#releases ,本文版本下载链接:http://ffmpeg.org/releases/ffmpeg-4.2.9.tar.gz

三、增加交叉工具编译工具环境变量(重要)

设置环境变量PATH,增加后注意不要关闭控制台,否则需要重新设置环境变量,后续操作都在当前控制台。

export PATH="/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH"

echo $PATH

aarch64-linux-gnu-gcc -v

三、交叉编译ffmpeg源码

(1)新建opcncv3_build文件夹,解压缩ffmpeg源码命令:tar -zxvf ./ffmpeg-4.2.9.tar.gz

(2)新建opencv3_install文件夹,用于存储交叉编译结果:

(3)进入./ffmpeg-4.2.9文件夹

(4)开始交叉编译ffmpeg源代码

./configure \
--enable-cross-compile \
--prefix=/home/topeet/workspace/opencv3_build/opencv3_install \
--cross-prefix=/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
--arch=arm64 \
--target-os=linux \
--enable-gpl \
--extra-cflags=-fPIC \
--disable-filters \
--disable-encoders \
--enable-decoder=h264 --enable-parser=h264 --enable-demuxer=h264 \
--disable-asm  --enable-parsers --disable-debug --enable-ffmpeg --enable-shared --disable-static --disable-stripping --disable-doc --disable-yasm --disable-libx264

make

make install

make和make install成功后,编译的lib文件

五、交叉编译OpenCV源码

注:请使用步骤4所在的终端,不要重新打开终端,否则需要配置步骤4中的环境变量

(1)解压缩:unzip ./opencv-3.4.3.zip

(2)在opencv-3.4.3文件夹内,执行 mkdir arm64_install_opencv3创建文件夹,并进入

(3)设置交叉编译环境变量PKG_CONFIG_PATH

cp -r /home/topeet/workspace/opencv3_build/opencv3_install/lib/* /usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib
#可以不用复制上述lib,待验证


export PKG_CONFIG_PATH=/home/topeet/workspace/opencv3_build/opencv3_install/lib/pkgconfig/

source /etc/profile
#特别重要

(4)执行CMAKE,并交叉编译

cmake -D CMAKE_BUILD_TYPE=RELEASE  \
             -D CMAKE_INSTALL_PREFIX=/home/topeet/workspace/opencv3_build/opencv3_install \
             -D CMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
             -D CMAKE_CXX_COMPILER=aarch64-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=OFF \
             -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 WITH_GTK=OFF -D WITH_GTK_2_X=OFF  ..


make -j8

make install

CMAKE执行后可以显示版本号:

编译成功后的lib库文件和include头文件:

六、部署安装相关lib库

打包压缩编译出的相关文件:

tar -zcvf opencv3_install.tar.gz ./opencv3_install

将相关lib文件拷贝至嵌入式目录 /lib64 文件夹中,即可运行

本文相关源代码及编译结果:https://download.csdn.net/download/dashuo0501/88485322

七、测试运行相关lib库

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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,并将编译好的库文件和头文件拷贝到板子上进行开发使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值