Ubuntu+Cmake-gui+OpenCV+Opencv_contrib+Android

Using Cmake-gui to build OpenCV and Opencv_contrib for Android on Ubuntu !

Note: If not install cmake-gui, just run script below:

#!/bin/sh

BASE_PATH=~/tool/Android
NDK_PATH=${BASE_PATH}/android-ndk-r16b
SDK_PATH=${BASE_PATH}/sdk
ANDROID_API_LEVEL=21
#declare -a ANDROID_ABI_LIST=("x86" "x86_64" "armeabi" "arm64-v8a" "armeabi-v7a" "mips" "mips64")

ANDROID_CONTRIB_PATH=../../opencv_contrib430/modules
INSTALL_PREFIX=./

cmake -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
      -DANDROID_NDK=${NDK_PATH} \
      -DANDROID_NATIVE_API_LEVEL=${ANDROID_API_LEVEL} \
	  -DANDROID_SDK=${SDK_PATH} \
      -DANDROID_ABI="arm64-v8a" \
	  -DANDROID_STL=c++_static \
      -DWITH_CUDA=OFF \
      -DWITH_MATLAB=OFF \
      -DBUILD_ANDROID_EXAMPLES=OFF \
      -DBUILD_DOCS=OFF \
      -DBUILD_PERF_TESTS=OFF \
      -DBUILD_TESTS=OFF \
	  -DCMAKE_BUILD_TYPE=Release \
      -DOPENCV_EXTRA_MODULES_PATH=${ANDROID_CONTRIB_PATH}  \
      -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} ..

一、Compiler Environment & Tools Versions

1.Cmake-gui 3.18.0
2.OpenCV 4.3.0
3.Opencv_contrib 4.3.0
4.Ubuntu 18.04

二、Cmake-gui configuration

1.select source directory & output directory在这里插入图片描述
2.Add Entry for Android

  • ANDROID_NDK type is PATH,enter NDK path
  • ANDROID_SDK type is PATH,enter SDK path
  • ANDROID_ABI type is STRING,default is armeabi-v7a
  • ANDROID_NATIVE_API_LEVEL type is STRING,default is 21
  • ANDROID_STL type is STRING,enter c++_static or c++_shared(default gnustl_static
  • CMAKE_TOOLCHAIN_FILE type is FILEPATH,

Option1:Ubuntu+Cmake-gui+OpenCV+Opencv_contrib+Android_第1张图片
Ubuntu+Cmake-gui+OpenCV+Opencv_contrib+Android_第2张图片

Option2: enter NDK cmake path. likeandroid-ndk-r16b/build/cmake/android.toolchain.cmake

  • more info can be found in xxx/opencv/platforms/android/android.toolchain.cmake

then click the button Configure in bottom. if no errors, it will be show logs as below:

Parallel framework:            pthreads

  Trace:                         YES (with Intel ITT)

  Other third-party libraries:
    Custom HAL:                  NO
    Protobuf:                    build (3.5.1)

  Python (for build):            /usr/bin/python3

  Java:                          export all functions
    ant:                         NO
    Java wrappers:               YES
    Java tests:                  NO

  Install to:                    /home/xxx/Document/player/build-opencv-for-android/opencv430/build/install
-----------------------------------------------------------------

Configuring done

3.Set Configuration for OpenCV(Options)

  • OPENCV_EXTRA_MODULES_PATH set value:xxx/Document/player/build-opencv-for-android/opencv_contrib430/modules
  • BUILD_ANDROID_PROJECTS=ON Build Android projects providing APK files.
  • BUILD_ANDROID_EXAMPLES=OFF
  • BUILD_PERF_TESTS=OFF
  • BUILD_TESTS=OFF
  • BUILD_opencv_world=OFF
  • BUILD_SHARED_LIBS=OFF
  • WITH_CUDA=OFF
  • CMAKE_BUILD_TYPE=Release

then click the button Configure in bottom again. Also if no errors, it will be show logs as below:

GUI: 

  Media I/O: 
    ZLib:                        z (ver 1.2.3)
    JPEG:                        build-libjpeg-turbo (ver 2.0.4-62)
    WEBP:                        build (ver encoder: 0x020f)
    PNG:                         build (ver 1.6.37)
    TIFF:                        build (ver 42 - 4.0.10)
    JPEG 2000:                   build Jasper (ver 1.900.1)
    OpenEXR:                     build (ver 2.3.0)
    HDR:                         YES
    SUNRASTER:                   YES
    PXM:                         YES
    PFM:                         YES

  Video I/O:

  Parallel framework:            pthreads

  Trace:                         YES (with Intel ITT)

  Other third-party libraries:
    Custom HAL:                  NO
    Protobuf:                    build (3.5.1)

  Python (for build):            /usr/bin/python3

  Java:                          export all functions
    ant:                         NO
    Java wrappers:               YES
    Java tests:                  NO

  Install to:                    xxx/Document/player/build-opencv-for-android/opencv430/build/install
-----------------------------------------------------------------

Configuring done

Finally, click the button Generate, and it will be show logs as below:

-----------------------------------------------------------------
Configuring done
Generating done

三、Build

Note!
Do the stuff below before building:
Copy file xfeatures2d.hpp and directory xfeatures2d
from xxx/opencv_contrib430/modules/xfeatures2d/include/opencv2
to xxx/opencv430/modules/features2d/include/opencv2
result like:
Ubuntu+Cmake-gui+OpenCV+Opencv_contrib+Android_第3张图片

otherwise, will occurse error like:

In file included from /home/xxx/Document/player/build-opencv-for-android/opencv-4.3.0/modules/java/generator/src/cpp/opencv_java.cpp:8:
In file included from /home/xxx/Document/player/build-opencv-for-android/opencv-4.3.0/output/modules/java_bindings_generator/gen/cpp/opencv_jni.hpp:18:
/home/xxx/Document/player/build-opencv-for-android/opencv-4.3.0/output/modules/java_bindings_generator/gen/cpp/xfeatures2d.inl.hpp:12:10: fatal error: 'opencv2/xfeatures2d.hpp' file not found
#include "opencv2/xfeatures2d.hpp"

1.Command line build

cd /home/xxx/Document/player/build-opencv-for-android/opencv430/build
make -j8

No errors, exeute

make install

references:

  1. Windows环境下为Android编译OpenCV4.3
  2. Ubuntu 16.04下为Android编译OpenCV 3.2.0 Manager
  3. build-opencv-for-android
  4. Windows 下 OpenCV 3.4.0 + Contrib 部署文档 (VS2015 & Android)
  5. Ubuntu16.04编译OpenCV for Android

你可能感兴趣的:(android)