Android (一)LInux 编译 OpenCV+OpenCV_contirb4.5.0 for Android

一、前言

opencv document : https://docs.opencv.org/master/index.html

tracking 不在 modules中 而在 extra modules 中 ,

因此直接下载的opencv_android_sdk\sdk\java\src\org\opencv\中 没有tracking ,

无法  import org.opencv.tracking;

https://docs.opencv.org/4.5.0/javadoc/org/opencv/tracking/Tracker.html

因为 tracking等部分功能已经移到opencv_contrib 中,需要单独下载并重新编译

二、编译opencv版本

opencv : https://github.com/opencv/opencv/releases   4.5.0

opencv_contrib : https://github.com/opencv/opencv_contrib/releases   4.5.0

(下载相同版本)

三、方法尝试

方法1.1:linux: https://blog.csdn.net/heiheiya/article/details/80998082

方法1.2 https://www.cnblogs.com/ahfuzhang/p/11069832.html

失败  过程略

方法2:BUILD_SDK.PY : https://www.freesion.com/article/3476178517/

python3 build_sdk.py \
            --ndk_path $ANDROID_NDK \
            --sdk_path $ANDROID_SDK \
            --no_samples_build \
            work_dir '/dfsdata2/liuwr5_data/C++/opencv/opencv-4.5.0' \
            --extra_modules_path '/dfsdata2/liuwr5_data/C++/opencv/opencv_contrib/modules'

1)注意 config中要求的ndk与sdk版本:ndk-18-api-level-21.config   API 21 安装ndk-r22b  sdk-r25.2.3

2)download the Android SDK without Android Studio bundled:https://guides.codepath.com/android/installing-android-sdk-tools#installing-the-android-sdk-via-homebrew

sdkmanager  命令行 安装 platforms  build-tools platforms-tools

3)手动安装最新版cmake 

sudo apt-get install ccache ninju-build 

4)设置环境变量

export ANDROID_SDK=/dfsdata2/liuwr5_data/C++/opencv/android-sdk-r25
export PATH=$PATH:$ANDROID_SDK/tools
export ANDROID_NDK=/dfsdata2/liuwr5_data/C++/opencv/android-ndk-r22b

成功!


四、其他网址收藏

Android Studio 中集成Opencv环境(包含opencv_contrib部分): https://www.cnblogs.com/fx-blog/p/8206737.html

Android Studio 2.2 中利用CAMKE进行OpenCV的NDK开发: https://www.cnblogs.com/fx-blog/p/8215331.html

Windows编译 : https://blog.csdn.net/ezhchai/article/details/80557936

Linux编译 : https://blog.csdn.net/wilson1068/article/details/88768865

报错:

[ 72%] Building CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.o
/dfsdata2/liuwr5_data/C++/opencv_android/opencv_contrib-4.5.0/modules/xfeatures2d/src/boostdesc.cpp:654:37:fatal error: boostdesc_bgm.i: No such file or directory
compilation terminated.
modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/build.make:571: recipe for target 'modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.o' failed
make[2]: *** [modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.o] Error 1
CMakeFiles/Makefile2:5970: recipe for target 'modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/all' failed
make[1]: *** [modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

https://blog.csdn.net/u011736771/article/details/85960300/

五、上述仅生成.so动态库, 没有 jar 任然不能import org.tracking

BUILD_SHARED_LIBS=OFF   失败

https://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html?spm=a2c6h.12873639.0.0.11463c503GueIZ

windows环境下

https://blog.csdn.net/netscaner/article/details/98179840

https://blog.csdn.net/u011658663/article/details/103015080

import module后 用Android Studio Gradle>build> 将module打包成aar,解压 取release的classes.jar 

再手动导入so 成功

猜你喜欢

转载自blog.csdn.net/weixin_41386168/article/details/116704888