您的位置:首页 > 移动开发 > Android开发

Android环境下安装openCV

2016-01-09 17:21 387 查看
今天因为课题的关系需要在安卓上安装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环境的搭建
 



大小: 57.9 KB



大小: 69.6 KB



大小: 51.3 KB



大小: 36.7 KB



大小: 13.1 KB



大小: 48.7 KB



大小: 140.4 KB



大小: 99.2 KB

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: