這里以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環(huán)境
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
注意:不要關(guān)閉當前終端!后面編譯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 \
../..
以上,有路徑的地方都需要根據(jù)自己的實際情況進行修改。
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上,然后解壓。文章來源:http://www.zghlxwxcb.cn/news/detail-715321.html
# 例如,解壓的路徑是/home/pi/lib/aarch64_1
sudo vim /etc/ld.so.conf.d/opencv.conf
添加:
/home/pi/lib/aarch64_1/lib
#生效
sudo ldconfig
五、成品
提取碼0816文章來源地址http://www.zghlxwxcb.cn/news/detail-715321.html
到了這里,關(guān)于瑞芯微RK3588,交叉編譯opencv的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!