最近打算写一个android 平台opencv 的小程序,着手查找了一下资料.网络上的资料参差不齐,有一些都比较老旧,我参考了前面的方法找到了一个简单的搭建方法,分享给大家.

0,环境的搭建:

  java 虚拟机环境搭建,网络资料很多不再赘述.

  android 开发环境的搭建参见我的上一篇博客 基于adt-bundle-windows-x86的android开发环境搭建.

  下面说明如果搭建 android opencv 环境:

  下载NDK http://developer.android.com/tools/sdk/ndk/index.html  ,

  下载Opencv-android-sdk  OpenCV for Android

  下载 CDT http://www.eclipse.org/cdt/downloads.php

  Eclipse 安装CDT  有许多方法 ,我这里是在Eclipse  工具栏 ,help  --> install new  software -->  add  -->  archive ,打开刚才下载的压缩及可.

  安装完 CDT  ,这里可以看到 c / c++  这一项

 

  把NDK 和 opencv-android-sdk 解压到你的程序目录.

  导入官方的工程文件,过程如下图:

  

这里直接选择你的opencv-android-sdk目录即可,所有工程文件将自动导入.

此时导入的工程文件会提示有许多错误 ,不要紧,这里配置还未完成 .设置NDK环境变量, 在系统中添加

NDKROOT 环境变量,变量值为你NDK的路径.需要强调一点,如果你是window环境,路径要用短路径名,如我的图:

  

修改jni 目录中Android.mk 中的include 目录,如果是windows 环境 修改成像这样的 include D:\Progra~1\OpenCV-2.4.7.1-android-sdk\sdk\native\jni\OpenCV.mk

OpenCV library这个工程是所必需的库文件, 所以导入的时候要一起导入.

紧接如下图修改project build target 和 library 即可:

  

进行一下,project --> clean  导入的工程文件应该都可以编译了.

1,运行官方的例子

  手机端需要首先安装 opencv manager  ,这个在\OpenCV-2.4.7.1-android-sdk\apk  中 ,这几个包我在小米 2s 安装都可以.

  运行OpenCV Sample - face-detection 例子.

  

2,anroid 基于opencv  数卡程序.

原想基于opencv 编写数卡的程序,后来下载和学习zxing 发,现在zxing 源码上进行修改更容易实现,所以便不在这里更新内容.感性趣的可以看下一篇zxing 一维码部分深入分析与实际应用.

参考及阅读推荐:

  http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html

 http://www.cnblogs.com/TseChiHoi/archive/2012/10/19/2726524.html

  

Android OpenCV 图像识别的更多相关文章

  1. WINDOWS系统Eclipse+NDK+Android + OpenCv

    WINDOWS系统Eclipse+NDK+Android + OpenCv 参考文档博客 1 NDK环境搭建 http://jingyan.baidu.com/article/5d6edee22d90 ...

  2. Android OpenCV样例调试+报错处理

    1.OpenCV样例调试:<OpenCV Sample - image-manipulations>       blog+报错:E/CAMERA_ACTIVITY(17665): Cam ...

  3. Android+openCV 的坑

    之前一直用IntelliJ IDEA 导入 opencv_android_sdk 的 java 包,在最后一步finish时,始终出错. 后来重新安装Android Studio 重复以上步骤,能顺利 ...

  4. android opencv

    最近工作需求:用opencv来先做一个demo.扫描照片进行边缘检测和透视矫正. 之后会加入照片降噪等处理. 请教了一下搞图像的同事.他的提议: 1.绿盟的“黄色照片检测” 用的是动态的opencv库 ...

  5. 【感受】android + opencv + umat + opencl使用感受

    近期编译了android下支持opencl的opencv,使用opencl能力的关键是用cv::UMat替换cv::Mat. 实际使用后发现坑很多,非常不成熟,不推荐使用这种方式来提升实际产品的性能. ...

  6. Android开发(51) 摄像头自动对焦。在OpenCV图像识别中连续拍照时自动对焦和拍照。

    概述 对焦,这里所说的“焦”是指“焦距”.在拍照时,一定是需要调焦的.一般会在目标位置最清晰的时候会停止对焦.最近在处理OpenCV进行图像识别时,需要连续的调焦(对焦),并在对焦完成后进行拍照,获取 ...

  7. eclipse+android+opencv环境搭建的步骤

    ---恢复内容开始--- 2016年4月12日编写 一.第一步:搭建eclipse开发环境 1.在eclipse官网中下载eclipse.zip进行解压即可.没有版本要求,但要和电脑的位数相匹配.如: ...

  8. Android OpenCV实现图片叠加,水印

    关于如何用纯OpenCV实现图片叠加的例子实在是太少,太多的是使用 C++,JNI实现的,如果要用C++的话,我们为啥不转行做C++ 下面的例子基于 Android JavaCV 实现了在im_bea ...

  9. Android+openCV人脸检测2(静态图片)

    前几篇文章中有提到对openCV环境配置,这里再重新梳理导入和使用openCV进行简单的人脸检测(包括使用级联分类器) 一 首先导入openCVLibrary320 二 设置gradle的sdk版本号 ...

随机推荐

  1. ios基础篇(二十)—— UIBezierPath绘制

    UIBezierPath类可以创建基于矢量的路径,可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状. 一.UIBezierPath使用: 1.创建path: 2.添加路径到path ...

  2. Python高效编程的19个技巧

    初识Python语言,觉得python满足了我上学时候对编程语言的所有要求.python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了.高级语言,如果做 ...

  3. WCF初探-7:WCF服务配置工具使用

    在上一篇WCF服务配置中,文章讲解了WCF的配置所需要的基本节点和属性构造,但是对于初学者的我们在编写程序的时候,往往对这些节点的位置和属性不是特别清楚,所以就导致我们的因配置文件错误而不能运行服务程 ...

  4. WCF初探-8:WCF服务承载 (上)

    前言 任何一个程序的运行都需要依赖一个确定的进程中,WCF服务也不例外.如果使用WCF服务,我们就必须将服务承载于创建它并控制它的上下文和生存期的运行时环境中,承载服务环境的程序,我们称之为宿主.WC ...

  5. require.js基本认识

    基本API require会定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短 define 从名字就可以看出 ...

  6. 横竖屏切换时候Activity的生命周期的总结

    1.新建一个Activity,并把各个生命周期打印出来 2.运行Activity,得到如下信息 onCreate--> onStart--> onResume--> 3.按crtl+ ...

  7. Leetcode 58 Length of Last Word 难度:0

    https://leetcode.com/problems/length-of-last-word/ int lengthOfLastWord(char* s) { int ans = 0; int ...

  8. 我的套路(windows):Jenkins+Jmeter+Ant持续集成

    前期准备: 1.Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html 命令行输入:java -ver ...

  9. 搭建mysql5.626及如何去官网下载历史版本数据库

    MySQL官网下载历史版本 网上搜索MySQL官网 2 查询所有的归档文件   点击进入服务器列表   列表中默认只有Windows 版本的,可选择其它版本,但无法进行查询   查看网页元素   发现 ...

  10. 6、android 网络编程

    1.基于socket的用法 服务器端: 先启动一个服务器端的socket     ServerSocket svr = new ServerSocket(8989); 开始侦听请求 Socket s  ...