开发环境:windows+ADT Bundle+CDT+OpenCV-2.4.4-android-sdk

一、OpenCV2.4简介

OpenCV近年来发展迅猛,随着Android智能终端的发展,越来越多的传统科研平台都转向Android移动终端。记得2010年人们还不大知道Android,当时第一次用OpenCV还是用的1.0.2版本在VC6.0上。早期的OpenCV只提供C语言接口,你要申请个矩阵还得CvMat *mat ?= cvCreateMat(...)写一大串,这样做是为了保证程序的运行效率,带来的不便是要开发者手动管理内存分配,稍有不慎内存泄漏那是常有的事。在OpenCV的发展历程上,第一次飞跃是2009年10月1日发布的2.0版本,该版本支持C++接口 了,是直接从1.2版本跳到2.0。不久又推出了2.1,自此后想要移植OpenCV至嵌入式系统,在编译时必须借助CMake工具,而以往的不用。

第二次飞跃是在2010年6月发布的2.3、2.3.1版本,除提供C++接口向下兼容C接口外,新增了Java接口,且是对准Android平台。更重要的是以前官方不支持ndk-build,这次终于一统JNI接口调用方式,方便在Android上开发使用。2012年4月2日发布了2.4版本,支持windows/Linux、Mac/Android/IOS四大系统。

最新的版本是2013年11月11日发布的2.7版本。我电脑上配置的是2.4.4版本。

从2.4之后,为了和Android的系统架构保持同步,准确说是吸收Android框架层的优点,引入了OpenCV Manager的概念,其本质就是一个Service,用来管理OpenCV动态链接库。它工作在APP和OpenCV的动态链接库之间。OpenCV Manager的结构就是模仿Android的Binder机制。其架构图如下:

APP在运行时会首先检查OpenCV Manager存在不,如果不存在则会提示安装。如果存在,就会连接这个服务,进一步初始化加载OpenCV库。流程如下:

对于开发者而言,了解即可。从应用层面讲,将OpenCV-2.4.4-android-sdk解压后,会看到如下文件夹:

其中sdk就是开包时要用到的包,samples是自带的示例,doc是说明文档,apk则就是OpenCV Manager。手机想要运行基于OpenCV的Java接口的程序,就必须先安OpenCV Manager。

不同的手机选择不同的版本,如果是英特尔平台就选那个带x86的。比较老的手机不支持ARMv7的选第三个。根据android的版本选择前两个。我手机支持的是第一种。安装后即可。

二、Android APP通过Java接口调OpenCV

1、配置

配置其实比较简单,比之前的用JNI接口调OpenCV要简单很多,不过为了保持同步,也即以后的开发中可以随意混用Java接口和JNI接口,我们仍将压缩包解压到跟工作空间平级的目录。然后将解压后的sdk文件夹命名为OpenCV4Android-sdk,拷贝到新建的工作空间中。假设新建的工作空间名为OpenCV4Android。

【备注:这里让它两平级是为了以后JNI调用时无需修改mk文件。注意解压后会嵌套一个目录,把它拷到最外层。sdk文件夹命名和拷贝到新的工作空间都不是必须的。】

打开Eclipse切换到这个新的工作空间,右键import---General---Existing Projects into workspaces,选择OpenCV解压后的那个sdk包。导入后看是否有错误,我的是提示找不到java.util.List这个包,原来是没有加载进来Android的SDK。选中项目,按快捷键Alter + Enter,点Android,选中一个SDK,要求3.0以上。然后clean一下,看bin文件夹下的opencv library - 2.4.4.jar是否生成,如果它生成了就表示已经导入成功。

2、新建项目并引入上面的jar包

任意新建一个Android Application Project,然后选中该项目快捷键Alter + Enter,在下面的加库区域点Add,将导入工作空间的opencv sdk选中:

可以看到在Android Dependencies中将刚到导包bin目录下生成的jar文件导进去了。之后就可以使用opencv的API了。

【备注:说白了就是为了把这个jar包导进来。在生成这个jar包后可以把它拷出来,新建一个user library HYPERLINK "/yanzi1225627/article/details \t "_blank" 参见导原生camera到ecli

c4android资源,OpenC4Android开发环境搭.doc相关推荐

  1. vs2010 wdk c语言,Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc

    Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc [置顶]Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验) 分类: 驱动开发 ...

  2. STM32F4 | 最小系统设计 | 开发板资源介绍 | 开发环境搭建 | 程序下载

    文章目录 一.STM32最小系统设计 1.什么叫MCU最小系统? 2.STM32最小系统 2.1 供电电路(电源部分) 2.2 复位电路 2.3 时钟电路 2.4 BOOT启动模式选择 2.5 下载电 ...

  3. 用电子计算机控制海洋牧场,教师用书2016 2017学年高中地理第2单元开发海洋资源第3节海洋生物资源及其开发整合提升.doc...

    文档介绍: 教师用书2016_2017学年高中地理第2单元开发海洋资源第3节海洋生物资源及其开发整合提升教师用书2016_2017学年高中地理第2单元开发海洋资源第3节海洋生物资源及其开发整合提升 第 ...

  4. EC600 QuecPython开发环境搭建、固件下载,最方便的OpenCPU物联网4G通信解决方案

    EC600 QuecPython 官方资源汇总 开发环境搭建 1.安装windows驱动 2.验证模组的固件版本 3.烧录QuecPython固件 小试QuecPython 1.查看系统信息 2.点亮 ...

  5. esp8266 rtos 开发环境 ubuntu_esp8266/32~资源帖[持续更新]

    一. 背景 最开始入手esp8266是大三下学期(16年),好像当时是同专业的一朋友带入坑的.刚开始玩ardunio想通过esp8266到app,ardunio是通过AT指令和8266交互的.后面用着 ...

  6. 鸿蒙运行linux,【鸿蒙资源】已经配置好鸿蒙开发环境的Ubuntu 20.04镜像

    1 .前言: 目前鸿蒙系统的开发环境主要分为 windows 和 Linux两个平台.目前编译 鸿蒙系统的代码还是需要在 Linux环境下. 关于Linux的环境搭建官方有提供文档说明:https:/ ...

  7. 使用乐鑫官方资源搭建基于Arduino的ESP32的开发环境

    目录 一.配置IDE管理器 二.自动安装板支持包 三.手动安装板支持包 四.网盘的ESP32全系列基本库的板支持包 使用乐鑫官方库搭建Arduino开发环境. 乐鑫官方Github:GitHub - ...

  8. 【C#+SQL Server+打印组件】实现电商快递单打印系统 二:数据库设计与开发环境(附源码和资源)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 一.系统开发环境要求 开发快递单打印精灵项目的计算机需要满足以上条件 操作系统:windows7以上 开发环境:Visual Studio 2022 ...

  9. 【C#+Access+WindowsAPI】实现仿360的安全卫士 一:功能展示与系统开发环境简介(附源码和资源)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 其他部分文章链接如下 [C#+Access+WindowsAPI]实现仿360的安全卫士 二:主窗体设计讲解(附源码和资源) [C#+Access+ ...

最新文章

  1. C++中的两种绑定方式(静态绑定、动态绑定)
  2. 苹果宣布创立欧洲首个iOS开发中心
  3. 华为手机连电脑_华为手机微信聊天记录如何导出电脑的四大方法
  4. 【LiveVideoStack线上分享】— 海外复杂网络环境下的视频播放体验优化
  5. java安全编码指南之:输入注入injection
  6. 云计算技术的跃进睿云智合专业先进水平
  7. java衍生作用_java-如何从AffineTransform衍生的形状对象中“...
  8. shell 除法 小数点
  9. dumpe2fs命令详解
  10. 世界第一台电脑_阿里推出云电脑“无影”,名片大小的机身,却有无穷的计算能力...
  11. Visual C#.Net 网络程序开发-Socket篇
  12. Android病毒家族及行为(一)
  13. 数据库查询条件是list的集合
  14. 快手调整员工福利,​减少房补,增加生育津贴;百度网盘青春版正式上线,被吐槽;雷军回应小米对标苹果遭冷嘲热讽 | EA周报...
  15. ps怎么做油漆喷溅画效果
  16. 多少程序员的梦想职位,成为阿里P7真的就这么难吗-学会这些就够了
  17. 如何用mysql创建orders表_MySQL学习十四创建和操纵表
  18. Oracle分区表详解,分区表创建,分区表按日期划分
  19. 编写一递归函数求斐波纳契数列1,1,2,3,5,8,13,…的前40项。c语言
  20. 5G时代的物联网:福器还是凶器

热门文章

  1. 生活不易,且行且珍惜
  2. 16Adapter(适配器)模式
  3. python3创建多线程的几种方法
  4. OpenVINO2021.4+YOLOX目标检测模型部署测试
  5. AI 框架部署方案之模型部署概述
  6. 他被导师半夜敲门叫醒:你得诺贝尔奖了!还曾为5G频谱拍卖设计方案,担任谷歌IPO咨询顾问...
  7. The last packet successfully received from the server was 1,547,682,071 milliseconds ago. The last
  8. 一个类可以实现多个接口但是只能实现一个类
  9. Drug Discov. Today | 简要综述GNNs用于分子性质预测
  10. Pheatmap热图的绘制及如何调整图片