android 之Opencv(java)使用
2016-11-11 17:23
211 查看
去官网下载opencv-android http://opencv.org/
解压,文件夹包含了apk,sample,sdk,把sdk的java导入工程目录下作为依赖库,如下:
3.拷贝value下的attrs.xml到res下
拷贝sdk 里native下的.so库到工程的libs目录下
创建一个Activity调用,内容如下:
执行有可能会出错,可能是因为没有导入相应的.so库
解压,文件夹包含了apk,sample,sdk,把sdk的java导入工程目录下作为依赖库,如下:
3.拷贝value下的attrs.xml到res下
拷贝sdk 里native下的.so库到工程的libs目录下
创建一个Activity调用,内容如下:
package com.lee.opencvdemo; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; 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.Point; import org.opencv.core.Scalar; import org.opencv.imgproc.Imgproc; import java.io.FileNotFoundException; import java.io.InputStream; public class MainActivity extends AppCompatActivity { private Button btn_1; private Button btn_2; private ImageView iv_1; private Bitmap image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_1 = (Button) findViewById(R.id.bt_1); btn_2 = (Button) findViewById(R.id.bt_2); iv_1 = (ImageView) findViewById(R.id.iv_1); btn_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent =new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent,100); } }); btn_2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!OpenCVLoader.initDebug()){ OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0,MainActivity.this,baseLoaderCallback); }else { baseLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 100: if (resultCode==RESULT_OK){ Uri uri = data.getData(); InputStream inputStream =null; try { inputStream =getContentResolver().openInputStream(uri); } catch (FileNotFoundException e) { e.printStackTrace(); } image = BitmapFactory.decodeStream(inputStream); } break; } } private BaseLoaderCallback baseLoaderCallback =new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { if (status == LoaderCallbackInterface.SUCCESS){ mainProcess(); }else { super.onManagerConnected(status); } } }; private void mainProcess(){ Mat mat = new Mat(); Utils.bitmapToMat(this.image,mat); Imgproc.putText(mat,"fhgfdsgh",new Point(20,40),3,1,new Scalar(0,255,0,255),2); Bitmap bm =Bitmap.createBitmap(mat.cols(),mat.rows(),Bitmap.Config.ARGB_8888); Utils.matToBitmap(mat,bm); iv_1.setImageBitmap(bm); } }
执行有可能会出错,可能是因为没有导入相应的.so库
相关文章推荐
- javaandroid中opencv的使用
- android开发 android studio配置opencv for android sdk,使用opencv的java函数
- Android Studio 2.2 让你5分钟配置好 OpenCV for Android(java层和native层都可以使用)
- Windows+eclipse+Android+java+api+opencv使用需要注意的几点
- Android Studio 使用 java 通过 OpenCV4Android 实现 Hello OpenCV
- Android开发使用OpenCv中JavaCameraView预览图左旋90度问题
- Android中使用Opencv自带JavaCameraView实现高帧率竖屏显示
- android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
- Android中JNI的使用之一:Java原生JNI的使用、javah指令的使用以及图解教材
- Android 在Java代码中设置style属性--使用代码创建ProgressBar对象
- 使用java.net进行Android和服务器信息交互
- Android使用JNI实现Java与C之间传递数据
- Android 在Java代码中设置style属性--使用代码创建ProgressBar对象(反射机制)
- 在Android系统使用socket在Java层和native之间数据通信
- 如何使用jdb调试android的java程序
- Android使用JNI实现Java与C之间传递数据
- 继续ANDROID学习第二步,不使用Eclipse创建JAVA工程
- Java基础知识JNI 在Android中使用System.loadLibrary()
- android使用ant自动打包(更改java文件中的属性值,批量自动生成)
- 2011/06/13 android使用html做UI的方法---js与java的相互调用