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
祝你使用愉快。 有什么问题。 欢迎指出。 以便更正。
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 ...
- 下载安装和OpenCV匹配的Android开发环境
ok blog Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Jav ...
- Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境
Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用Ope ...
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...
- 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 ...
- Build Assimp library for Android
Build Assimp library for Android 首先各路教程中有推荐使用 NDK 或者 STANDALONE TOOLCHAIN 编译的,根据我的理解,这两种方式都是可以的,如果能直 ...
- 中国移动基于ARM/x86服务器的Ceph性能对比
2018年11月17日,Ceph中国行首次走进杭州,万众期待的杭州站沙龙如期而至,虽然杭州已经开始降温,阵雨不断,但活动现场依然热度爆表,杭州各大IT公司的从业人员和Ceph爱好者纷纷而来. 中国移动 ...
- build path libraries java基础--Jar包添加到build path方式说明--01
摘自: http://blog.csdn.net/haolongabc/article/details/7007701 java基础--Jar包添加到build path方式说明--01 前言:这段短 ...
- android ARM 汇编学习 —— hello world
android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析 adb putty 连上手机,用busybox vi 写一个 hello ...
随机推荐
- iOS开发-Tom猫
// // ViewController.m // 20-tom猫 // // Created by hongqiangli on 2017/8/1. // Copyright © 李洪强. ...
- Spark SQL inferSchema实现原理探微(Python)【转】
使用Spark SQL的基础是“注册”(Register)若干表,表的一个重要组成部分就是模式,Spark SQL提供两种选项供用户选择: (1)applySchema applySche ...
- 【Socket】linux无连接编程技术
1.mystery引入 1)无连接编程也称为UDP编程,是采用UDP报文的形式完成的网络通信 2)UDP是一种对等通信,本身不区分服务器端和客户端 3)对等通信,最容易想到的 ...
- crontab入门
参数 crontab是一个处理定时任务的命令,在终端输入man crontab可以得到使用方法提示,主要参数如下: crontab -u # 指定运行的账户,默认为当前账户 crontab -l # ...
- 解析虚拟VMware三种网络模式的根本区别
网络模式(文字解说)VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下 ...
- img的src不连接本地地址实现输出一个图片(使用base64)
<img alt="100%x180" data-src="holder.js/100%x180" style="height: 180px; ...
- LVS之NAT模型、DR模型配置和持久连接
前言:继LVS概述,本篇实现NAT模型和DR模型下的负载均衡. NAT模型: LVS-NAT基于cisco的LocalDirector.VS/NAT不需要在RealServer上做任何设置,其只要能提 ...
- spring security 注解@EnableGlobalMethodSecurity详解
1.Spring Security默认是禁用注解的,要想开启注解,需要在继承WebSecurityConfigurerAdapter的类上加@EnableGlobalMethodSecurity注解 ...
- python -修改文件中某一行
写代码写错了顺序,所以想办法把x,y坐标调换回来 def change_ptsxy(fileName): fp = open(fileName) i = file_data = "" ...
- flume1.8实现hdfsSink整点滚动文件
由于官方的1.8版本hdfs-sink不能在每天的0点滚动文件,所以修改了flume-hdfs-sink源码. flume-hdfs-sink中修改了HDFSEventSink.java文件,其他文件 ...