在Android上调用OpenCV 2.4.10库函数
来源:互联网 发布:java localdatetime 编辑:程序博客网 时间:2024/06/05 06:11
在Android上调用OpenCV 2.4.10库函数
所用到除android基本开发环境之外的文件:
1、OpenCV 2.4.10 Android Manager apk。下载地址:点击打开链接
2、OpenCV 2.4.10 Lib java。下载地址:点击打开链接
接下来开始新建一个测试项目
1、先新建一个安卓项目:
之后一路 next,然后 Finish。
完成之后多了一个
展开之后项目里面是这样的
Java 文件内容如下:
package cn.busymonkey.test;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.core.Size;import org.opencv.highgui.Highgui; import org.opencv.imgproc.Imgproc; import android.os.Bundle; import android.os.Environment;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 opencv_test extends Activity implements OnClickListener{ private Button btnProc; private ImageView imageView; //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.main); btnProc = (Button) findViewById(R.id.btn_gray_process); imageView = (ImageView) findViewById(R.id.image_view); Bitmap bitmapsrc = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/lenaphone.bmp"); imageView.setImageBitmap(bitmapsrc); btnProc.setOnClickListener(this); } @Override public void onClick(View v) { Mat grayMat = Highgui.imread(Environment.getExternalStorageDirectory()+"/lenaphone.bmp", 0); Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/lenaphone.bmp"); Bitmap grayBmp = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.RGB_565); Utils.matToBitmap(grayMat, grayBmp); Mat srcGrayResize = new Mat(); Imgproc.resize(grayMat, srcGrayResize, new Size(200,200)); Highgui.imwrite(Environment.getExternalStorageDirectory()+"/lenaphoneGray.bmp", srcGrayResize); 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); } }
因为Java文件中调用了OpenCV的库文件,所以现在Import导入OpenCV Java库文件
添加完成后会看到
然后给自己的项目包含这个库文件
保存apply即可。
新建xml文件
xml 文件内容如下:
<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 文件内容如下:
<resources> <string name="app_name">GrayProcess</string> <string name="hello_world">Hello world!</string> <string name="menu_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>
AndroidManifest.xml 文件内容如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.busymonkey.test" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".Test" > ////////这里名字很重要,必须要跟源文件中的Java一样 <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
完成。
0 0
- 在Android上调用OpenCV 2.4.10库函数
- Android平台上调用OpenCV
- Android上使调用OpenCV 2.4.10 实现二维码区域定位(Z-xing 码)
- Matlab调用opencv库函数的具体应用
- OpenCV在Android平台上的应用
- OpenCV在Android平台上的应用
- 初次在Android上使用OpenCV
- opencv在android上的应用
- 1、在Android Studio上配置OpenCV
- 在未安装opencv的电脑上,调用库
- Opencv在安卓平台上编译----调用C++库
- OpenCV在Python上的调用( import cv2的解决办法)
- 在未安装opencv的电脑上,调用库
- Qt在Windows上简单调用opencv摄像头Demo
- 在汇编中调用C库函数
- 在C中调用C++动态库函数
- 在 VS2013 中调用 ffmpeg 库函数
- 【Android Studio】在Android Studio上进行OpenCV 3.1开发
- 浅谈MVC模式
- Java使用JNI调用C++的完整流程
- 配置Mybatis Generator不要生成Example类
- 最近的想法
- S2SH开发环境搭建、框架整合、项目基础环境搭建
- 在Android上调用OpenCV 2.4.10库函数
- 在Linux下用C语言操作数据库sqlite3(建立数据库)
- 设备I/O之“文件设备”
- 汇编指令
- 《数据结构》第二章思维导图
- DUAL 表
- 设备I/O之“同步的设备I/O”
- The connection to adb is down, and a severe error has occured.
- 设备I/O之“异步设备I/O请求”