废话不多说。

准备工作:

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

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

Build opencv libraries for android arm, x86 ubuntu的更多相关文章

  1. Android NDK and OpenCV Development With Android Studio

    Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5 ...

  2. 下载安装和OpenCV匹配的Android开发环境

    ok blog Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Jav ...

  3. Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境

    Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用Ope ...

  4. [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...

  5. Build OpenCV text(OCR) module on windows

    Background. AOI software needs to use the OCR feature to recognize the texts on the chips. Because o ...

  6. Build Assimp library for Android

    Build Assimp library for Android 首先各路教程中有推荐使用 NDK 或者 STANDALONE TOOLCHAIN 编译的,根据我的理解,这两种方式都是可以的,如果能直 ...

  7. 中国移动基于ARM/x86服务器的Ceph性能对比

    2018年11月17日,Ceph中国行首次走进杭州,万众期待的杭州站沙龙如期而至,虽然杭州已经开始降温,阵雨不断,但活动现场依然热度爆表,杭州各大IT公司的从业人员和Ceph爱好者纷纷而来. 中国移动 ...

  8. build path libraries java基础--Jar包添加到build path方式说明--01

    摘自: http://blog.csdn.net/haolongabc/article/details/7007701 java基础--Jar包添加到build path方式说明--01 前言:这段短 ...

  9. android ARM 汇编学习 —— hello world

    android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析 adb putty 连上手机,用busybox vi 写一个 hello ...

随机推荐

  1. Vue2键盘事件

    这两天学习了Vue.js 感觉组件这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记,学习一下Vue键盘事件 键盘事件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...

  2. Ant编译android程序

    http://blog.csdn.net/xyz_lmn/article/details/7268582 这一篇主要做了创建android项目.update已存在项目.ant编译项目. 一,准备ant ...

  3. js判断是否安装flash player及当前版本 和 检查flash版本是否需要升级

    一.js检查flash版本升级 for (var i = 0, len = navigator.plugins.length; i < len; i++) { var plugin = navi ...

  4. 【Ubuntu】查看GPU状态

    watch -n 10 nvidia-smi TensorFlow指定GPU CUDA_DEVICE_ORDER="PCI_BUS_ID" CUDA_VISIBLE_DEVICES ...

  5. django创建应用

    创建应用--在一个项目中可以创建多个应用,每个应用进行一种业务处理 打开CMD,进入project(目录名)的目录下,输入命令创建名为myApp的app: python manage.py start ...

  6. spring batch初识

    Spring Batch是什么?  Spring Batch是一个基于Spring的企业级批处理框架,按照我师父的说法,所有基于Spring的框架都是使用了spring的IoC特性,然后加上自己的一些 ...

  7. C#学习笔记(24)——C#将PPT批量转为JPG(最简单的方法)

    说明(2017-8-1 11:15:46): 1. 哈哈,我就说微软肯定有自己的办法,把PPT转成图片. 2. 主要是要引入两个微软自己的程序集,vs里自带直接添加引用,注意一下版本,12.0是off ...

  8. 1. CNN卷积网络-初识

    1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面, 它的神经元间的连接是 ...

  9. php 裁剪图片类

    <?php /* *说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形 * 参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高 * writt ...

  10. java基础篇---Servlet监听器

    在写此篇前,看了一下园友写的,感觉其基础知识归纳的十分全面,我在此就不累赘的写了,链接地址(http://www.cnblogs.com/sherryueda/p/4273169.html), 我就写 ...