android学习五---OpenCV for android环境搭建
学习android的目的是想在手机上实现计算机视觉的算法。一般算法的研究都是在Matlab上进行,但是手机平台没有那么多的计算资源,用matlab显然是不太现实的。而OpenCV是基于C++语言编写的,可用于开发实时的图像处理、计算机视觉以及模式识别程序。
一:需要的工具
在前面的章节中,我们已经搭建好android,现在我们需要android支持OpenCV,需要哪些工具呢?首先android是基于java开发的,而Opencv是基于C++,所以这两者之间需要工具来相互支持。这一工具是android NDK,而我们需要把一些OpenCV库编译成.so动态库(linux下的动态链接库),需要Cygwin,而在eclipse下开发C++需要安装CDT。另外最重要的是需要计算机视觉算法的一些API,这就需要安装OpenCV4Android。
1.Android NDK
1.1. 基本介绍
Android NDK(Native Development Kit )是一套工具集合,允许你用像C/C++语言那样实现应用程序的一部分。Google仅在极少数情况下建议使用NDK,有如下使用场景:
- 必须提高性能(例如,对大量数据进行排序)。
- 使用第三方库。举例说明:许多第三方库由C/C++语言编写,而Android应用程序需要使用现有的第三方库,如Ffmpeg、OpenCV这样的库。
1.2 安装
下载地址:https://developer.android.com/tools/sdk/ndk/index.html
下载的版本是android-ndk-r10c-windows-x86_64.exe。
环境变量:将下载的文件解压,比如我的目录是D:\android-ndk-r10c,将这一目录放在系统变量的Path里头。
测试:在cmd下输入NDK-build,如果出现下面的界面表示安装成功
2.Cygwin (可以不用安装,官方教程上面不需要)
用途:在windows上运行类Unix系统。
3.CDT
一般安装eclipse时都会安装好CDT
4.OpenCV4Android
下载地址:http://sourceforge.net/projects/opencvlibrary/files/opencv-android/
教程:http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html#
官方教程上的工具
JDK
Android SDK and NDK
Eclipse IDE
ADT and CDT plugins for Eclipse
二、OpenCV4Android
下载完,解压,
2.1 目录结构如图
OpenCV-2.4.9-android-sdk |_ apk | |_ OpenCV_2.4.9_binary_pack_armv7a.apk | |_ OpenCV_2.4.9_Manager_2.18_XXX.apk | |_ doc |_ samples |_ sdk | |_ etc | |_ java | |_ native | |_ 3rdparty | |_ jni | |_ libs | |_ armeabi | |_ armeabi-v7a | |_ x86 | |_ LICENSE |_ README.android
sdk folder: 针对andriod的OpenCV API和库:
sdk/java folder: 一个包含 Android 库 的Eclipse 项目,能够 提供OpenCV java API,可以导入eclipse工作空间;
sdk/native folder: 包含 OpenCV C++ headers (for JNI code) 和 native Android libraries (*.so and *.a) 可用于 ARM-v5, ARM-v7a and x86 架构;
sdk/etc folder :contains Haar and LBP cascades distributed with OpenCV.
apk folder :包含用于各个手机架构的OpenCV Manager API,要在手机上跑OpenCV的程序必须安装,这个API能够使程序调用OpenCV库.
samples :包括可安装在手机上的一些android应用程序包括源码,可导入Eclipse。
doc:不用说啦,就是OpenCV的帮助文档了。
2.2 OpenCV Manager API
基于android服务的解决方案,能够提供为OpenCV开发者提供各种好处包括使得开发的APK更加紧凑,因为所有的应用都是使用相同的binaries,所以没必要每个程序都保存一份等等。
2.3 导入OpenCV库和例子到worksapce
file import 选择目录,一定要选择OpenCV-2.4.9-android-sdk 这个根目录,或者加上sdk--java这个目录。一定要记得导入OpenCV library,否则会出现OpenCV函数各种红线。
2.3 选择C/C++的编译器
在这些samples中,有些是基于OpenCV java API如image-manipulations,OpenCV C++ API如face-detection。选择face-detection,选择project-properties,C/C++ Build ,首先设置Environment,NDKROOT,value为NDK解压的目录,然后设置Build command为${NDKROOT}/ndk-build.cmd .
2.4 运行OpenCV例子
1.在手机上运行
选择合适的OpenCV Manager,插上手机,在cmd上输入命令adb shell getprop ro.product.cpu.abi,就可以看到手机的架构了如图
在手机上装好OpenCV Manager和OpenCV binary pack(在apk目录下可以找到)。然后像之前一样运行,就可以在手机上看到效果了。
2.在模拟器上运行
开好模拟器
在cmd下使用命令adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk安装OpenCV Manager。
运行samples,由于没有摄像头,运行效果如图。
参考资料:http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html
android学习五---OpenCV for android环境搭建的更多相关文章
- 零基础Android学习笔记-01 安卓开发环境搭建
安卓开发环境搭建. 1.首先准备JDK,从官网找到JDK下载地址,原来做.NET不熟悉JAVA,干脆用最新的,下载了JDK 1.7的版本.原来装过1.5还要配置环境变量什么的.但1.7好像很给力,装好 ...
- Android学习六---OpenCV for android samples
搭建好OpenCV4Android环境后,就要着手开发自己的应用了.对于一个没有OpenCV基础的人来开发OpenCV应用确实有点难度,不过我们可以从samples里学起,结合javadoc和万能的网 ...
- android学习点滴一:android环境的搭建
东一点西一点,很多时间都浪费了.是该系统性的做好自己的东西了. <android学习点滴一:android环境的搭建> [环境变量]变量名:JAVA_HOME变量值:C:\Java\jdk ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
- 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建
Xamarin.Android 入门之:Xamarin+vs2015 环境搭建 一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...
- Android开发使用控件入门--环境搭建
Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...
- ubantu16.04+mxnet +opencv+cuda8.0 环境搭建
ubantu16.04+mxnet +opencv+cuda8.0 环境搭建 建议:环境搭建完成之后,不要更新系统(内核) 转载请注明出处: 微微苏荷 一 我的安装环境 系统:ubuntu16.04 ...
- 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)
引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...
- Java学习笔记【一、环境搭建】
今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...
随机推荐
- OSI七层模型与TCP/IP五层模型详解
博主是搞是个FPGA的,一直没有真正的研究过以太网相关的技术,现在终于能静下心学习一下,希望自己能更深入的掌握这项最基本的通信接口技术.下面就开始搞了. 一.OSI参考模型 今天我 ...
- zoj 1109 Language of FatMouse(字典树)
Language of FatMouse Time Limit: 10 Seconds Memory Limit: 32768 KB We all know that FatMouse do ...
- nginx+keepalived构建高可用服务
1.整体环境规划 虚拟IP:10.0.4.248 主Nginx:10.0.4.249 备用Nginx:10.0.4.250 2.keepalived安装 #cd /usr/local/src #wge ...
- DNSPod--国内最早提供免费智能DNS产品的网站,致力于为各类网站提供高质量的多线智能DNS免费解析
DNSPod 建立于2006年3月份,是一款免费智能DNS产品. DNSPod 可以为同时有电信.网通.教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网 ...
- jmeter模拟对网站做压力测试
一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.基本框架如下 详细步骤: 1 .用badboy录制登录,访问随意一个网址. 2.用jmeter打开,一会自己写的时候可以参考里面的参数名称或 ...
- Oracle启动中,spfile.ora、init<SID>.ora、spfile<SID>.ora 这三个文件正确的先后顺序是什么?
Oracle启动中,spfile.ora.init<SID>.ora.spfile<SID>.ora 这三个文件正确的先后顺序是什么? 解答:启动数据库,使用startup命令 ...
- 嵌入式驱动开发之dsp 算法优化vlib emcv---算法优化
http://www.opencv.org.cn/forum.php?mod=forumdisplay&fid=9
- VUE:使用vue-cli脚手架无法安装npm install axios 的巨坑
使用命令 npm install axios 安装axios可能会报错,无法引用, 这个时候使用淘宝的镜像cnpm安装就可以了 cnpm install axios 如果没有安装cnpm,执行以下命令 ...
- Lenna图-莱娜·瑟德贝里
莱娜·瑟德贝里(瑞典文:Lena Soderberg),1951年3月31日出生于瑞典,在1972年11月期的<花花公子>杂志中,她化名为莱娜·舍布洛姆,成为了当期的玩伴女郎. 她的中间折 ...
- map实现
/*PLSQL实现Map*/ --建立序列create sequence seq_map_param_id ;--建立参数表create table map_param(id number prima ...