Build opencv libraries for android arm, x86 ubuntu

廢話不多說。

準備工作:

1. 下載源碼: http://opencv.org/

編譯平臺:ubuntu14.04

opencv 2.4.6.1

本人用這種辦法編譯了opecv 2.4.9 的沒有什麼問題, 問題比opencv2.4.6.1還要少, 其實他們的原理是一樣的.

opencv 源碼根目錄----${opencv_home}

2.

修改 ${opencv_home}/platforms/scripts/cmake_android_arm.sh 文件,添加編譯選項 -DBUILD_SHARED_LIBS=ON 和 -DWITH_OPENCL=ON
修改後的cmake_android_arm.sh 文件如下:

#!/bin/sh
cd `dirname $0`/..

mkdir -p build_android_arm
cd build_android_arm

cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake $@ ../..\
      -DBUILD_SHARED_LIBS=ON -DWITH_OPENCL=ON

3.

修改 ${opencv_home}/cmake/OpenCVDetectOpenCL.cmake

以便生成支持編譯opencl 的編譯選項:

OpenCVDetectOpenCL.cmake 40 行後面添加

set(OPENCL_FOUND YES)
set(OPENCL_INCLUDE_DIR your_ocl_include_dir)
#set(OPENCL_LIBRARY    you_opencl_lib_file_path)

一個是設置ocl頭文件,一個設置opencl 庫文件的, 上面把他註釋掉了是因爲本人要用的是動態顯示調用的方式去調用opencl庫的api, 這樣就不用在編譯的添加於設備相關的opencl庫了。 

4.

修改 ${opencv_home}/CMakeLists.txt
OCV_OPTION(WITH_OPENCL "Include OpenCL Runtime support" ON IF (NOT IOS) )

這一步好像在opencv2.4.9 版本的源碼不用設置可以。 

這個的主要目的是爲了能是下一步生成支持opencl 的選項。


5.執行 ${opencv_home}/platforms/scripts/cmake_android_arm.sh

如果執行有問題, 設置NDK 路徑:

終端執行:export NDKROOT=/xxxx/android-ndk-r9d

可以看到:
--   Other third-party libraries:
--     Use IPP:                     NO
--     Use Eigen:                   NO
--     Use TBB:                     NO
--     Use OpenMP:                  NO
--     Use GCD                      NO
--     Use Concurrency              NO
--     Use C=:                      NO
--     Use Cuda:                    NO
--     Use OpenCL:                  YES

這這樣就能編譯相關的庫了。 不過如果沒有設置

set(OPENCL_LIBRARY    you_opencl_lib_file_path)
這個可能會導致一些test 編譯不過去,沒有關係, ocl的相關庫已經能編譯好了。

6. 切換到 ${opencv_home}/platforms/build_android_arm 目錄:

執行:make

等待編譯完成吧...

7.最終Andorid動態庫在${opencv_home}/platforms/build_android_arm/lib/armeabi-v7a下生成

對於Android x86 的同理Android arm 庫的編譯方法, 只是步驟2, 5操作腳本是 ${opencv_home}/platforms/scripts/cmake_android_x86.sh

祝你使用愉快。 有什麼問題, 歡迎指出, 以便更正。









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章