这是本人第一篇博客,写博客并不是说本人的技术能力有多强,或者说炫耀自己取得的进展。在当今这个数据信息大爆炸的年代,每个人肯定会接受很多新鲜事物,但不是所有东西你都能记得一清二楚,写博客一方面是为了巩固加深自己的学习;另一方面,一直在各博客上学习他们的思路和方法,自己也想加入这个集体里面,为别人提供一些帮助。

言归正传,最近接到了一个人脸识别移动平台搭建的任务,大体任务是:图像处理过程全部用C++处理,之后将处理的结果用JNI的方式传给手机端显示出处理过后结果。

在网上大约按自己的思路搜了下解决方案,Opencv有个Android版本,可以导进Eclipse 和AS里面,用于手机端的图像处理识别,完美符合项目要求。

opencv-androd 的下载地址:https://opencv.org/releases.html          下载完之后解压到一个不含中文的目录下

在安装上面,出现了大约两种思路:

1)手动配置JNI,配置mk文件

2)用最新的AS里面自带的C++选项进行添加

(PS:这里出现了两种思路,仁者见仁智者见智,如果十分清楚JNI,可以下载最新版本的AS里面自带c++选项,省掉了很多繁琐步骤;如果对JNI不是很熟悉,可以先手动配置一次JNI,加深自己对知识的理解)

本文主要以第二种方法为主,第一种方法网上有一大把,可以参考他们的博客    这是我的下载的版本号:Android studio 版本为3.1.2            opencv-Android为3.4.1

step1:

step2:

之后一路next 直到step3:

之后创建成功后,可以看下app下面有一个cpp 和java 文件夹,直接运行就可以看到,“hello world from C++”证明自己一开始创建的环境没错,如果中间有报错,提示缺少XXX插件之类的,按照log里面的提示下载安装即可。

之后 点击 File》Setting》Android SDK》SDK tools   如图    有缺少的点击下载即可。

之后我们添加Opencv341到我们的Android Studio 里面,点击File》New》import modul 如图选择下载的opencv-Android的java文件夹

之后不要做任何修改一直next,成功后会看到添加了另一个文件夹openCVLibrary341,证明添加成功

之后点击File》Project Structure,如图顺序点击

添加  点击finish。

这时就可以在MainActivity里面导入opencv

这时,将  (Modul:opencvLibrary341)    compileSdkVersion       minSdkVersion    targetSdkVersion全部改成和(Modul:app)下的保持一致后,点击编辑栏右上方的

切换到project选项

在app/src/main文件夹下创建一个目录为JniLibs   将下载的opencv-Android-sdk 下的OpenCV-android-sdk\sdk\native\libs  下的所有内容,拷贝到该目录里面。

在AndroidManifest.xml文件添加如下代码 如图

    <uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/> <supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />

点击app下的Cmake文件,修改cmake文件内容如下

set(pathOPENCV D:/software/OpenCV-android-sdk)                   set(pathPROJECT D:/codezoom/UseOpenCvwithCmake)                             一定要以自己安装文件为主

点击 Build》Rebuild 查看配置的有什么问题,(出错后我认为一定要检查两点    1.复制win10下的目录要把    \    改成   /   否则找不到文件                       2.仔细查看目录是否正确)

这时我们点击cpp下的文件,发现我们可以添加opencv的头文件了

大功告成!!!!!!!!!!!!!

参考博客:http://webnautes.tistory.com/1054  (可能需要翻墙)

												

Opencv-Android安装使用的更多相关文章

  1. OpenCV - Android Studio 中集成Opencv环境(包含opencv_contrib部分)

    我在上一篇博客中说到了在Android中集成OpenCV,但是那个版本的OpenCV是没有SIFT和SURF算法的,因为这些算法是受专利保护的,所以并没有被包含在预编译库中,所以如果想要使用SIFT和 ...

  2. OpenCV的安装与系统环境变量

    OpenCV的安装与系统环境变量 安装OpenCV本来是很简单的一件事,但配置却很麻烦.而且在配置过程中尤为重要的步骤就是系统环境变量的配置.我使用的是CodeBlick13.12与OpenCV1.0 ...

  3. org.opencv.android.JavaCameraView 摄像机方向的问题

    ——> org.opencv.android.JavaCameraView 摄像机方向的问题 ref: http://www.tuicool.com/articles/q6vUvqB 注意:一般 ...

  4. Android - 安装 windows 7 安装 Android SDK 的时候出现的问题!(Connection to https://dl-ssl.google.com refused)

    Android - 安装 windows 7  安装 Android SDK 的时候出现的问题! 首先看到 Connection to https://dl-ssl.google.com refuse ...

  5. vs2015 Xamarin.Android安装

    原文:vs2015 Xamarin.Android安装 Xamarin.Android 安装步骤,以vs2015为例 1,安装vs2015中的跨平台项,但是安装在国内肯定失败,因为需要到谷歌下载 当我 ...

  6. openCV python 安装

    0, 用 import cv 测试,发现没有安装 opencv 模块. 首先先说本开发环境是在windows xp的环境下进行搭建的. 在搭建的过程中需要保证这三个条件: 1.python需要安装py ...

  7. Android安装 sdk+jdk+Eclipse+Adt开发工具

    根据别人提供的手册和安装过程体验加以更新和详细描述 安装Android开发工具 开发Android应用程序的门坎并不高,因为Google已经为Android应用程序开发提供了免费而且跨平台的集成开发环 ...

  8. Android 安装过程中的问题

    Android  安装过程中的问题 上一篇我说到配置android环境,但是在具体的安装过程中,因为下载的软件或者方法不同,导致没有正确的结果,如果有一些错误的时候,可以试一试关闭eclipse软件, ...

  9. 如何给你的Android 安装文件(APK)瘦身

    如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet           原作者:Cyril Mottier Android的apk文件越来 ...

  10. Anaconda+linux +opencv+dlib安装

    准备文件Anaconda: https://www.anaconda.com/download/ 我下载的时最新的 64-Bit (x86) Installer (524 MB) 然后在下载的anac ...

随机推荐

  1. delphi操作sqlite3

    Delphi SQLite 简明无废话上手指南SQLite下载http://www.sqlite.org/download.html SQLite FAQhttp://www.sqlitecn.org ...

  2. LwIP协议栈规范翻译——摘要目录

    摘要 LwIP是一种TCP/IP协议栈的实现.LwIP协议栈专注于减少内存的使用和代码的大小,使LwIP适用于嵌入式系统中在有限的资源下能够使用小型的客户机.为了减少处理和内存的需求,LwIP使用裁剪 ...

  3. 5、Flutter 实现 ViewPager、bottomNavigationBar 界面切换

    1.前言 首先我们想一下,如果在 Android 中实现 布局切换,通常的思路是: 做一个 viewpager 一组 Fragment 每个 Fragment 绑定一个 xml 最后填充至 viewp ...

  4. java框架之SpringCloud(2)-Rest微服务案例

    在上一章节已经对微服务与 SpringCloud 做了介绍,为方便后面学习,下面以 Dept 部门模块为例做一个微服务通用 Demo —— Consumer 消费者(Client) 通过 REST 调 ...

  5. vs添加github代码库

    1.安装git for windows 2.在vs中工具->扩展和更新,安装github extension 3.在项目中右键,添加源码到git,之后配置git,然后选择同步或者commit即可

  6. React 添加对 Less 的支持, 使用 create-react-app 脚手架

    ---恢复内容开始--- 参考博客与我自己的当前版本有一点出入, 所以就将 参考博客写到文章后面去了. 我的电脑:  系统: Ubuntu16.04, 1, 安装脚手架: create-react-a ...

  7. Codeforces 799D Field expansion(随机算法)

    Field expansion [题目链接]Field expansion [题目类型]随机化算法 &题解: 参考自:http://www.cnblogs.com/Dragon-Light/p ...

  8. function(){}、var fun=function(){}和function fun(){}的区别

    一.基本定义 1.函数声明:使用function声明函数,并指定函数名. function fun() { // ...... } 2.函数表达式:使用function声明函数,但未指定函数名,将匿名 ...

  9. 『Numpy』np.meshgrid

    生成网格坐标,一个很好的说明图如下: 虽然xy双坐标比较常用,但实际上其输入可以是任意多的数组,输出数组数目等于输出数组数目,且彼此间shape一致. 如果输入数组不是一维的,会拉伸为1维进行计算. ...

  10. Shiro授权管理

    一.授权 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permissi ...