今天因为课题的关系需要在安卓上安装openCVC环境,但是参考网上很多教程都不够齐全,下面主要参考了一下两个教程进行配置,两个教程各有互补,然后对我的整个安装过程做个说明
这篇文章完全参考自一下参考链接:
比较全的安装:http://blog.csdn.net/pwh0996/article/details/8957764/
NDK安装:http://jingyan.baidu.com/article/5d6edee22d908799eadeec9f.html
如果在安装过程中有什么问题可以留言,也可以直接看上述博客
准备工具:
操作系统:window7 64位
Java版本:java8 64位
eclipse:eclipse for J2ee
android SDK
Android NDK r8
opencv for android 3.0.0
一,Java以及Android环境搭建
Java步骤:
1,安装JAVA JDK 我是装的Java 8当然Java7也是可以的
2,配置环境变量:
设置 JAVA_HOME 为JDK的安装目录 如我的目录是 D:\Program Files\Java\jdk1.8.0_65
在环境变量path中加入 %JAVA_HOME%\bin 注意需要在前面加上分号
Java7及其以上的不要配置classpath,也可以配置classpath为点号 . (点号表示当前目录)
3,在cmd中输入 javac-version如果配置成功则会出现你的JDK版本信息
二, Android环境搭建(我是基于eclipse+ADT+AndroidSDK搭建的)
1,安装android SDK
在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。
- 运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages 。
- 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包
- 在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\AndroidDevelop\android-sdk-windows\tools)。
-
- 在cmd中输入 andriod -h检测是否安装成功,成功会有android安装信息显示
2,安装ADT插件
我是使用ADT在线安装,比较方便,具体方法是 在eclipse中依次打开:
Help->Install new software
然后在work with框的右侧点击 ADD,如下图配置
点击确认之后会出现
注意不要勾选update all 那一项,否则会在安装过程中卡很久,接下来就下一步下一步就行了,安装完成中后重新打开eclipse即可
3,完成之后:
- 选择Window > Preferences...
- 在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:
D:\AndroidDevelop\android-sdk-windows - 点击Apply、OK。配置完成
4,创建android avd 虚拟机,这个比较简单,可自行百度
三,NDK环境搭建
最新的NDK(r7及其以上)已经内置了cygwin,也不用去装CDT,会非常方便,具体步骤如下:
1,下载NDK 下载链接为:http://developer.android.com/tools/sdk/ndk/index.html
2,打开Eclipse,点Window->Preferences->Android->NDK,设置NDK路径,例如我的是的是D:\Android\AndroidEnvir\android-ndk-r8
四,android openCV环境搭建
这一段参考自 http://blog.csdn.net/pwh0996/article/details/8957764/
1,进入官网(http://opencv.org/)下载OpenCV4Android并解压,其目录结构如下:
其中,sdk目录即是我们开发opencv所需要的类库;samples目录中存放着若干opencv应用示例(包括人脸检测等),可为我们进行android下的opencv开发提供参考;doc目录为opencv类库的使用说明及api文档等;而apk目录则存放着对应于各内核 版本的OpenCV_2.4.3.2_Manager_2.4应用安装包。此应用用来管理手机设备中的opencv类库,在运行opencv应用之前,必须确保手机中已经安装了OpenCV_2.4.3.2_Manager_2.4_*.apk,如何安装apk到虚拟机见(http://jingyan.baidu.com/album/19020a0a253302529d284213.html?picindex=1,需要说明的是有时候会出现那个Open CV was not initialed correctly,在那个apk包中多试几个apk就行了)否则opencv应用将会因为无法加载opencv类库而无法运行。
2,将SDK引入到工作空间
和传统的eclipse引入工程一样,将opeCV目录下的sdk项目引入到eclipse工作空间中。具体是:file->import->existing project into workspace然后选择openCVC的那个sdk项目
注意:有时候这个引入的项目会因为android版本不一致导致错误,具体表现是代码中引入的android包全报错,解决的方法是 项目->右击->properties->android 然后勾选相应的版本即可
3使用Java API开发android程序
创建工程
(1) 打开eclipse,创建android应用工程GrayProcess;
(2) 将测试图像lss.jpg(图片自选)添加到资源目录res/drawable-hdpi中;
(3) 在Package Explorer中选择项目GrayProcess,单击右键在弹出菜单中选择Properties,然后在弹出的Properties窗口中左侧选择Android,然后点击右下方的Add按钮,选择OpenCV Library 3.0.0并点击OK,操作完成后,会将OpenCV类库添加到GrayProcess的Android Dependencies中,如下图所示:
项目代码:
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/btn_gray_process" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/str_proc"/> <ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/str_proc"/> </LinearLayout>
String.xml文件
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">GrayPorcess</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="title_activity_main">MainActivity</string> <string name="str_proc">gray process</string> <string name="str_desc">image description</string> </resources>
MainActivity.java文件
package com.luchi.grayporcess; import org.opencv.android.BaseLoaderCallback; import org.opencv.android.LoaderCallbackInterface; import org.opencv.android.OpenCVLoader; import org.opencv.android.Utils; import org.opencv.core.Mat; import org.opencv.imgproc.Imgproc; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Bitmap.Config; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity implements OnClickListener{ private Button btnProc; private ImageView imageView; private Bitmap bmp; //OpenCV类库加载并初始化成功后的回调函数,在此我们不进行任何操作 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS:{ } break; default:{ super.onManagerConnected(status); } break; } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnProc = (Button) findViewById(R.id.btn_gray_process); imageView = (ImageView) findViewById(R.id.image_view); //将lena图像加载程序中并进行显示 bmp = BitmapFactory.decodeResource(getResources(), R.drawable.lss); imageView.setImageBitmap(bmp); btnProc.setOnClickListener(this); } @Override public void onClick(View v) { Mat rgbMat = new Mat(); Mat grayMat = new Mat(); //获取lena彩色图像所对应的像素数据 Utils.bitmapToMat(bmp, rgbMat); //将彩色图像数据转换为灰度图像数据并存储到grayMat中 Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY); //创建一个灰度图像 Bitmap grayBmp = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Config.RGB_565); //将矩阵grayMat转换为灰度图像 Utils.matToBitmap(grayMat, grayBmp); imageView.setImageBitmap(grayBmp); } @Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存在于OpenCV安装包的apk目录中 OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); } }
运行结果:
至此就完成了android openCV环境的搭建
相关推荐
在`OpenCV-android-sdk\samples`目录下,OpenCV提供了一些示例应用,这些应用展示了如何在Android上使用OpenCV进行实际的图像处理任务。比如,`FaceDetection`示例演示了如何检测图像中的面部,而`TessTwo`则展示了...
在大多数情况下,OpenCV Manager 将自动从 Google Play 安装。如果 Google Play 不可用,例如在模拟器或开发板上,可以使用 adb 手动安装。 三、OpenCV 库的安装 OpenCV 库的安装非常简单。您可以按照以下步骤安装...
总的来说,OpenCV-4.6.0-android-sdk.zip为Android开发者提供了一个全面的环境,使他们能够利用强大的计算机视觉功能开发创新的应用程序,如增强现实、图像识别、安全监控等。通过深入研究和实践,开发者可以充分...
Android Studio 中 Opencv 环境配置及边缘检测实例 Opencv 是一个计算机视觉库,提供了大量的图像处理和计算机视觉算法,广泛应用于图像处理、机器人视觉、目标检测等领域。 Android Studio 是一个集成开发环境,...
1. 配置环境:安装Android Studio,设置NDK路径,添加OpenCV库到项目中。 2. 创建JNI层:编写C++代码实现OpenCV的功能,如人脸检测。 3. 绑定JNI函数:在Java层创建对应的函数接口,使得Java代码能调用C++函数。 4. ...
### ANDROID下开发OpenCV #### 一、准备工作(Chapter1:Getting Yourself Ready) 在开始Android平台上的OpenCV开发之前,我们需要确保环境已经准备好。这一章主要介绍了如何配置开发环境,包括安装必要的软件和工具...
通过以上步骤,我们可以成功地在Android Studio中配置好OpenCV环境,并能够利用OpenCV提供的功能进行图像处理和计算机视觉相关的开发工作。这对于开发者来说是非常重要的技能之一,尤其是在需要处理复杂图像数据的...
在这个项目中,我们将探讨如何在不依赖OpenCV Manager的情况下,在Android应用中直接集成OpenCV并开启摄像头。 首先,为了在Android项目中使用OpenCV,你需要将OpenCV的Android SDK导入到你的项目中。这通常通过...
虽然这个例程没有提供完整的源代码,但通过以上描述,我们可以了解到如何在Android环境下使用OpenCV进行人脸检测和识别的基本步骤。对于初学者,这是一个很好的起点,可以从中学习如何结合Android和OpenCV技术来实现...
首先,要理解Android平台上的开发环境配置。Android Studio是开发Android应用的主要工具,我们需要将OpenCV库集成到项目中。这通常涉及到下载OpenCV的Android SDK,创建一个新的Android工程,并通过Gradle依赖管理将...
- **工具准备**:首先确保已安装Eclipse集成开发环境、Cygwin(用于执行Linux风格的命令行操作)以及android-ndk。 - **下载OpenCV库**:访问OpenCV官方网站http://opencv.org/downloads.html,下载适合Android...
本文将详细介绍如何在Android Studio项目中搭建OpenCV环境,并通过一个小案例来演示具体的应用。 首先,我们需要了解OpenCV是什么。OpenCV(开源计算机视觉库)是一个强大的跨平台计算机视觉库,它包含了众多用于...
在Android平台上,OpenCV是一个强大的计算机视觉库,它允许开发者执行复杂的图像处理任务,包括图像识别、特征检测、图像拼接等。在这个场景中,我们要讨论的是如何利用OpenCV来识别两张图片的相同区域,并进行去重...
1. 完整介绍基于Java的Android OpenCV环境配置 2.实现人脸识别 参考博客:https://blog.csdn.net/weixin_38346042/article/details/124015488?spm=1001.2014.3001.5502
接下来,我们需要初始化OpenCV环境。在Android应用的入口类(通常是`Application`的子类)中添加以下代码: ```java public class MyApplication extends Application { @Override public void onCreate() { ...
在Android环境中,需要考虑性能优化,如使用异步处理避免阻塞UI线程,以及合理管理内存,防止因频繁图像处理导致的内存泄漏。 总结,"VLC for Android 基于 Opencv 对 RTSP视频 实时人脸检测"是一个结合了多媒体流...
在这个Python 3.7.2和OpenCV的安装教程中,我们将探讨如何在最新版本的Python环境下正确安装和使用OpenCV。 首先,确保你已经安装了Python 3.7.2。如果还没有,可以访问Python官方网站下载并按照指南进行安装。安装...
要在Android下从事音视频开发,绕不开ffmpeg+opencv,不管是初学者还是有一定经验的程序,面临的首要问题就是环境的搭建和库文件的编译配置等问题,特别是初学者,往往会在实际开发前浪费大量的时间来编译ffmpeg及...