tips:opencv:install

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tips:opencv:install [2018/06/12 08:22] – [android method 2] scipiotips:opencv:install [2018/06/13 09:06] (current) scipio
Line 1: Line 1:
 ====== opencv install ====== ====== opencv install ======
 +
 +===== android studio =====
 +
 +[[https://stackoverflow.com/questions/50433813/how-to-add-opencv-lib-to-as3-1-2-and-ndk-17-0|integrate opencv in android studio project]]
  
 ===== linux  ===== ===== linux  =====
Line 76: Line 80:
 </code> </code>
  
-===== android method 1 =====+===== android =====
  
 prereq: prereq:
-  * substitute /opt/android-sdk/tools with https://dl.google.com/android/repository/tools_r25.2.5-linux.zip +  * android SDK in REAL_ANDROID_SDK (REAL_ANDROID_SDK=/opt/android-sdk) with NDK installed
-  * android sdk in /opt/android-sdk+
  
 +Download a stub android sdk and opencv sources
 <code> <code>
-cd /opt +# adjust these paths ## 
-git clone -b 3.4 --depth 1 https://github.com/opencv/opencv.git opencv.git +REAL_ANDROID_SDK=/opt/android-sdk 
-</code>+# output builded opencv, can be removed after  
 +BASE=/opt/OpenCV-android-sdk.custom 
 +#######################
  
-<file python platforms/android/ndk.config.py> 
-vars=dict(BUILD_ANDROID_PROJECTS='OFF') 
- 
-ABIs = [ 
-    #ABI("2", "armeabi-v7a", "arm-linux-androideabi-4.9", cmake_vars=dict(ANDROID_ABI='armeabi-v7a with NEON')), 
-    #ABI("1", "armeabi",     "arm-linux-androideabi-4.9", cmake_vars=dict(WITH_TBB='OFF')), 
-    ABI("3", "arm64-v8a",   "aarch64-linux-android-4.9", cmake_vars=vars), 
-    ABI("5", "x86_64",      "x86_64-4.9", cmake_vars=vars), 
-    #ABI("4", "x86",         "x86-4.9"), 
-] 
-</file> 
- 
-create /opt/OpenCV-android-sdk-compiled 
-<code> 
-cd /opt/opencv.git 
-python ./platforms/android/build_sdk.py \ 
- --config ndk.config.py \ 
- --ndk_path /opt/android-sdk/ndk-bundle \ 
- --sdk_path /opt/android-sdk \ 
- /opt/OpenCV-android-sdk-compiled . 
-</code> 
- 
-===== android method 2 ===== 
- 
-Thank you to everyone for your help. 
- 
-I recently had to build OpenCV for Android from source (because I wanted to link against LLVM libc++ STL instead of GNU STL). In case it’s useful to anyone else, here are some quick instructions on how I did it: 
- 
-<code> 
-    $ mkdir ~/sdk && cd ~/sdk 
-    $ wget https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip && unzip tools_r25.2.5-macosx.zip 
-    $ tools/android sdk 
-    Select and install the following two packages: 
-        Android SDK Build-tools 27.0.3 
-        Android 8.1.0 (API 27) -> SDK Platform 27 
-    $ mkdir ~/opencv && cd ~/opencv 
-    $ git clone https://github.com/opencv/opencv.git 
-    $ cd ~/opencv/opencv 
-    $ wget https://gist.githubusercontent.com/ngriffiths/296e2fc16b8586705712d50bdfe746b0/raw/350a8cb6497bfe367dda75b7bb202d6c7ce09a72/always-use-ant__find_android.patch && git apply always-use-ant__find_android.patch 
-    $ cd platforms/android 
-    $ ANDROID_SDK=~/sdk ANDROID_HOME=~/sdk ./build_sdk.py --config ndk-16.config.py ~/opencv/build 
-</code> 
- 
-I already had the ANDROID_NDK environment variable set to a local NDK 16 installation. 
- 
-To compile against libc++, I then changed ANDROID_STL="gnustl_static" in build_sdk.py to ANDROID_STL="libc++_shared" and ran build_sdk.py again. 
- 
-One unusual thing I couldn’t work out was why the static libs I built were much larger than those in the official distribution (e.g. my arm64-v8a/libopencv_core.a is 75.8MB vs 7.5MB). 
-@peterchaula 
-peterchaula commented on Apr 11 
- 
-@ngriffiths you need to strip out intel threading libs (TBB). That'll shave off ~15MB off your library. 
- 
-===== anroid method 3 ===== 
- 
-<code> 
-BASE=~/opencv-build 
 mkdir -p ${BASE} mkdir -p ${BASE}
 cd ${BASE} cd ${BASE}
Line 151: Line 100:
 Select and install the following two packages: Select and install the following two packages:
         Android SDK Build-tools 27.0.3         Android SDK Build-tools 27.0.3
-        Android 8.1.0 (API 27) -> SDK Platform 27+        Android 8.1.0 (API 27) -> SDK Platform
  
 git clone --depth 1 https://github.com/opencv/opencv.git git clone --depth 1 https://github.com/opencv/opencv.git
Line 159: Line 108:
  
 cd platform/android cd platform/android
-ANDROID_SDK=~/sdk ANDROID_HOME=~/sdk ./build_sdk.py --config ndk-16.config.py ${BASE}/build + 
-/<code>+# edit ndk-16.config.py 
 +# ABI("3", "arm64-v8a",   "aarch64-linux-android-4.9", cmake_vars=dict(BUILD_ANDROID_PROJECTS='OFF')), 
 + 
 +ANDROID_SDK=${BASE} ANDROID_HOME=${BASE} ./build_sdk.py 
 + --force_opencv_toolchain \ 
 + --ndk_path ${REAL_ANDROID_SDK}/ndk-bundle \ 
 + --config ndk-16.config.py 
 + ${BASE}/build 
 +</code> 
 + 
 +To compile against libc++, I then changed ANDROID_STL="gnustl_static" in build_sdk.py to ANDROID_STL="c++_shared" and ran build_sdk.py again. 
 + 
 +@ngriffiths you need to strip out intel threading libs (TBB). That'll shave off ~15MB off your library. 
  • tips/opencv/install.1528784548.txt.gz
  • Last modified: 2018/06/12 08:22
  • by scipio