简介

  本文主要是介绍,将opencv模块在Android上预览的最小代码实现。

准备工作

  首先在opencv官网上下载Android的库文件,下载下来之后,我的如下:

  接着可以使用eclipse新建一个工程,注意:opencv库和apk的工程必须在一个目录下。然后将opencv的android库和apk工程都导入到eclipse中,如下:

  接着导入opencv库,效果如下:

  至于opencv环境搭建的,网上很多教程,就不多说了。

代码内容

  实现的基本代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >     <org.opencv.android.JavaCameraView        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:id="@+id/color_blob_detection_activity_surface_view" /> </LinearLayout>


package com.example.camera_opencv_android; import org.opencv.android.BaseLoaderCallback;import org.opencv.android.CameraBridgeViewBase;import org.opencv.android.LoaderCallbackInterface;import org.opencv.android.OpenCVLoader;import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame;import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2;import org.opencv.core.CvType;import org.opencv.core.Mat; import android.os.Bundle;import android.view.Window;import android.view.WindowManager;import android.app.Activity;import android.content.pm.ActivityInfo;  public class MainActivity extends Activity implements CvCameraViewListener2 {    private Mat mRgba;private CameraBridgeViewBase mOpenCvCameraView; private BaseLoaderCallback  mLoaderCallback = new BaseLoaderCallback(this) {@Overridepublic void onManagerConnected(int status) {switch (status) {case LoaderCallbackInterface.SUCCESS:        mOpenCvCameraView.enableView();break;default:{super.onManagerConnected(status);} break;}}}; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);setContentView(R.layout.activity_main); mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.color_blob_detection_activity_surface_view);        mOpenCvCameraView.setCvCameraViewListener(this);} @Override public void onResume(){        super.onResume();        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); }@Overridepublic void onCameraViewStarted(int width, int height) {// TODO Auto-generated method stubmRgba = new Mat(height, width, CvType.CV_8UC4);} @Overridepublic void onCameraViewStopped() {// TODO Auto-generated method stub mRgba.release();} @Overridepublic Mat onCameraFrame(CvCameraViewFrame inputFrame) {// TODO Auto-generated method stub mRgba = inputFrame.rgba();     return mRgba;}}
  这是我根据opencv官方提供的代码精简出来的。流程来说挺简单的,就不多讲了。

效果演示

  opencv这个版本的Android库比较坑,要运行使用opencv库的apk,就必须先安装一个opencv的库的apk。这个库的apk在之前opencv官方下载那个包里面有。安装后如下:

  如截图所示:两个apk图标。分别就是自己新建的opencv预览apk和opencv的库apk。然后点击运行预览apk的效果如下:


参考代码如下:http://download.csdn.net/detail/u011630458/8403599


更多相关文章

  1. android 与JS之间的交互
  2. Android(安卓)多Dex分包机制
  3. android recovery模式及ROM制作
  4. Android(安卓)4.0新增Space及GridLayout初谈
  5. 浅谈J2me游戏如何快速移植到Android
  6. Android应用程序内部启动Activity过程(startActivity)的源代码分析
  7. Android相机开发那些坑
  8. Android(安卓)stuido常用快捷方式整理
  9. 谷歌 Android(安卓)4.0 源代码公布,一起来吃冰激凌三明治吧

随机推荐

  1. Android之通知使用权
  2. android 实现GridView多选效果
  3. Android(安卓)中 控制 wifi
  4. Android(安卓)3.0 honeycomb TextView on
  5. openCv CameraBridgeViewBase 竖屏显示对
  6. 关于SQLite数据库的那些事儿
  7. 命令行执行Android程序
  8. 在 Android(安卓)Studio 中配置源码路径
  9. Android之RecyclerView简单使用(三)
  10. 在eclipse环境中开发android原生应用