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 [email protected] ../..      -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

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

时间: 2024-10-10 17:53:41

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

Android NDK and OpenCV Development With Android Studio

Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5.7k 浏览 ---------------- If you do NOT know Chinese, you can just skip this part ---------------- 一直打算将原来的XFace进行改进,最近终于有了些时间可以动手了,改进计划如下:开发上使用Android

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

本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历.先上图,Ubuntu上编译完后成功运行模拟器,如图: 2 编译环境 UbuntuKylin 16.04 LTS Android 6.0_r1 Open JDK 7 3 准备工作 (1) 下载android 6.0源码.

Android ARM指令学习

在逆向分析Android APK的时候,往往需要分析它的.so文件.这个.so文件就是Linux的动态链接库,只不过是在ARM-cpu下编译的.所以学习Android下的ARM指令很重要.目前,市面上的ARM-cpu基本都支持一种叫做THUMB的指令集模式.这个THUMB指令集可以看作是ARM指令集的子集,只不过ARM指令集为32bit,THUMB指令集为16bit.之所以要使用这个THUMB指令集,主要是为了提升代码密度.具体信息大家可以google. 下面介绍如何简单修改.so文件. 首先,

ARM, X86和MIPS

ARM ARM架构,过去称作高级精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集reduced instruction set computing(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计.由于节能的特点,ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本.高性能.低耗电的特性. ARM is a family of instruction set architectures for c

Build OpenCV text(OCR) module on windows

Background. AOI software needs to use the OCR feature to recognize the texts on the chips. Because our vision software is based on OpenCV, so the first choice is text module in opencv_contrib. Procedures. 1. OCR module is not in standard OpenCV packa

Android ARM 汇编学习(一)

给自己挖了个坑,一切都得从"Hello World"开始. hello.S .data msg:     .ascii      "Hello, World!\n" len = . - msg .text .globl _start _start:     /* syscall write(int fd, const void *buf, size_t count) */     mov     %r0, $1     /* fd -> stdout */  

how to build a android environment in ubuntu 15.10

As we know, the android development environment need four part: JDK SDK IDE ADT. Problems: there are JDK versions from different companise. Previous, I run the command: $sudo apt-get install openjdk-7-jdk to install openjdk released by ubuntu ,and th

genymotion2.8.1安装apk时提示ARM……x86……异常处理

这两天接触android studio,跟着教程,接触到genymotion模拟器,版本2.8.1-- 本人使用的模拟器配置为:google nuex4,android sdk4.4.4,安装微信时提示如下: an error occured while deploying the file. this probably means that the app contians ARM native code and you Genymotion device cannot run ARM ins

第一节.安装Android Studio(Ubuntu)

安卓开发系列教程--目录 最后编辑于2016-04-21 本节介绍在Ubuntu 14.04 LTS 下安装Android Studio 2.0 .如果你的开发环境为Windows 7,请转到------. 本节目录: 安装JDK 安装Android SDK 安装Android Studio 新建项目并在虚拟设备AVD上运行第一个安卓APP 1. 安装并配置JDK 1.1 从ORACLE 官网下载最新版本的JDK Downloads -> Popular Downloads. Java SE -