opencv在android上预览的最小代码模块(2)
2015-01-25 11:01
288 查看
简介
本文主要是介绍,将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) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: mOpenCvCameraView.enableView(); break; default: { super.onManagerConnected(status); } break; } } }; @Override protected 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); } @Override public void onCameraViewStarted(int width, int height) { // TODO Auto-generated method stub mRgba = new Mat(height, width, CvType.CV_8UC4); } @Override public void onCameraViewStopped() { // TODO Auto-generated method stub mRgba.release(); } @Override public 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
相关文章推荐
- android短信发送模块主要代码
- 编译代码在Android中使用JNI调用Opencv本地代码 配置方式 边缘检测 范例代码
- Android开发linux下系统大模块编译、单模块编译、代码定位、指令总结
- Android开发中经常用到的代码模块
- Android实用代码模块集锦
- Android Library 工程实现模块复用 (代码及资源文件)
- Android开发使用OpenCv中JavaCameraView预览图左旋90度问题
- 问题解决:Spyder不支持OpenCV模块代码提示
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法实现边缘检测代码(2)
- 【Android】Opencv For Android: 如何显示摄像头预览
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- android上加载opencv模块
- Libgdx: android单机斗地主支持局域网wifi联网的网络模块核心代码
- Opencv For Android: 如何显示摄像头预览
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- 在Android中使用JNI调用Opencv本地代码 配置方式 边缘检测 范例代码
- Android OTA 与recovery模块代码解析
- opencv在android预览上实现人脸识别(4)
- Android与服务器http连接模块代码
- 解决:Spyder不支持OpenCV模块代码提示