zoukankan      html  css  js  c++  java
  • 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

    祝你使用愉快。 有什么问题。 欢迎指出。 以便更正。









  • 相关阅读:
    洛谷P4547 [THUWC2017]随机二分图
    洛谷P4590 [TJOI2018]游园会
    洛谷P4099 [HEOI2013]SAO
    #4719. 内凸包
    #1612. 天平(scales)
    #3164. 「CEOI2019」立方填词
    #4728. 问题求解
    #2754. Count(count)
    sa模板
    bzoj 2553: [BeiJing2011]禁忌
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7375013.html
Copyright © 2011-2022 走看看