江阴网站制作设计,怎么建网站 手机版,别墅设计图纸,建设部网站首页由于项目需要使用安卓平台下opencv的扩展库#xff0c;对于通用的opencv库#xff0c; opencv官网提供了android的SDK 但未能提供扩展库#xff0c;因此需要自己进行源码编译。本文记录android平台下opencv及其扩展库的交叉编译。
前提#xff1a;主机已安装android-ndk交…
由于项目需要使用安卓平台下opencv的扩展库对于通用的opencv库 opencv官网提供了android的SDK 但未能提供扩展库因此需要自己进行源码编译。本文记录android平台下opencv及其扩展库的交叉编译。
前提主机已安装android-ndk交叉编译器
安装依赖环境
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config1、源码下载
下载opencv可手动下载源码和拓展模块源码解压后分别命名opencv和opencv_contrib文件
Releases - OpenCV
GitHub - opencv/opencv at 4.8.0
GitHub - opencv/opencv_contrib: Repository for OpenCVs extra modules 2、源码编译
设置编译脚本build-opencv-for-android.sh
#!/bin/bash
NDK_ROOT${1:-${ANDROID_NDK_HOME}}
SHELL_PATH$(pwd)echo $NDK_ROOT### ABIs setup
declare -a ANDROID_ABI_LIST(arm64-v8a)### path setup
INSTALL_DIR${SHELL_PATH}/android_opencv
rm -rf ${INSTALL_DIR}/opencv### Make each ABI target iteratly and sequentially
API_LEVEL21
for i in ${ANDROID_ABI_LIST[]}
doANDROID_ABI${i}echo Start building ${ANDROID_ABI} versionTEMP_BUILD_DIR${SHELL_PATH}/build/android_${ANDROID_ABI}# ### Remove the build folder first, and create itrm -rf ${TEMP_BUILD_DIR}mkdir -p ${TEMP_BUILD_DIR}cd ${TEMP_BUILD_DIR}OPENCV_PATH${SHELL_PATH}/opencvOPENCV_CONTRIB_PATH${SHELL_PATH}/opencv_contribINSTALL_PATH${SHELL_PATH}/out/mkdir -p ${INSTALL_PATH}/usr/cmake-3.23.0-rc2-linux-x86_64/bin/cmake -DCMAKE_BUILD_WITH_INSTALL_RPATHON \-DCMAKE_TOOLCHAIN_FILE${NDK_ROOT}/build/cmake/android.toolchain.cmake \-DANDROID_TOOLCHAINclang \-DANDROID_NDK${NDK_ROOT} \-DANDROID_NATIVE_API_LEVEL${API_LEVEL} \-DANDROID_ABI${ANDROID_ABI} \-DOPENCV_EXTRA_MODULES_PATH${OPENCV_CONTRIB_PATH}/modules \-DCMAKE_INSTALL_PREFIX${INSTALL_PATH} \-D BUILD_ANDROID_PROJECTSOFF\-D WITH_CUDAOFF \-D WITH_MATLABOFF \-D BUILD_ANDROID_EXAMPLESON \-D BUILD_DOCSOFF \-D BUILD_PERF_TESTSOFF \-D BUILD_TESTSOFF \${OPENCV_PATH}# # Build itmake -j4# # Install itmake install/strip# ### Remove temp build foldercd ${SHELL_PATH}# rm -rf ${TEMP_BUILD_DIR}echo end building ${INSTALL_PATH} version
done
将build-opencv-for-android.sh、opencv和opencv_contrib文件放置于同一目录下
导出NDK安装路径环境变量
export ANDROID_HOME/usr/android-ndk-r25c/
export ANDROID_NDK_HOME/usr/android-ndk-r25c/
./build-opencv-for-android.sh
等待编译完成完成后编译成功如下库文件在 ./out/sdk/native/staticlibs/ 本文在编译脚本中只设置了安卓arm64-v8a硬件平台的编译如有需要可自行修改。
问题编译完成后不知道为什么编译没有报错但在3rdparty目录下并未编译 libtbb.a可直接使用将官网sdk中的libtbb.a。
参考
GitHub - ShikinChen/build-opencv-for-android: 编译opencv的Android库的脚本
GitHub - tzutalin/build-opencv-for-android: An interactive script to download and build OpenCV and OpenCV contrib for Android