OpenCV4Android(AS)-1
2016-04-25 17:40
585 查看
需要提前掌握的知识
关于OpenCV-Android-SDK
OpenCV4Android的使用
新建一个OpenCVTest项目
添加java层的接口
将OpenCV动态链接库添加进项目
验证
JNI技术
Activity组件
Camera的具体知识
OpenCV SDK
APK 有基于各种硬件平台的OpenCV Manager
Samples 各种例子
SDK 需要的各种库
具体步骤参考:stackoverflow
大致示例步骤:
2.在opencv目录下新建build.gradle文件:
3.在将opencv添加为module,如图:(图中我将app重命名为了OpenCVExample)
将SDK–>native–>libs目录下对应的平台的.so文件复制到jniLibs中,如图:
原图:
结果:
关于OpenCV-Android-SDK
OpenCV4Android的使用
新建一个OpenCVTest项目
添加java层的接口
将OpenCV动态链接库添加进项目
验证
1.需要提前掌握的知识
Java编程语言JNI技术
Activity组件
Camera的具体知识
OpenCV SDK
2.关于OpenCV-Android-SDK
其中包括了:APK 有基于各种硬件平台的OpenCV Manager
Samples 各种例子
SDK 需要的各种库
3.OpenCV4Android的使用
Android应用要使用OpenCV 可以通过在自己的应用里调用OpenCV Manager,但这样就要求要安装OpenCV Manager 。另外的方法是直接调用opencv 的动态链接库,在SDK–>native–>libs目录下可以找到各个平台对应的.so文件。SDK–>java提供了相应的接口,我们可以作为Module方便的进行调用。具体步骤参考:stackoverflow
大致示例步骤:
1. 新建一个OpenCVTest项目
在其目录下新建libraries文件。如图:2. 添加java层的接口
1.复制SDK目录下的java文件夹到OpenCVTest的目录下,并重名命名为opensv。如图:2.在opencv目录下新建build.gradle文件:
apply plugin: 'com.android.library' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0' } } android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 8 targetSdkVersion 23 versionCode 2480 versionName "2.4.8" } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] aidl.srcDirs = ['src'] } } }
3.在将opencv添加为module,如图:(图中我将app重命名为了OpenCVExample)
3.将OpenCV动态链接库添加进项目
在OpenCVExample–>src–>main目录下新建jniLibs文件。如图:将SDK–>native–>libs目录下对应的平台的.so文件复制到jniLibs中,如图:
4. 验证
随便找一张图片对其进行灰度化:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); boolean result = OpenCVLoader.initDebug(); Log.d("opencv是否启动",result+""); Mat rgbMat = new Mat(); Mat grayMat = new Mat(); Bitmap srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic); Bitmap grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565); Utils.bitmapToMat(srcBitmap, rgbMat);//convert original bitmap to Mat, R G B. Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);//rgbMat to gray grayMat Utils.matToBitmap(grayMat, grayBitmap); //convert mat to bitmap ImageView img = (ImageView) findViewById(R.id.image_view); if (img == null){ return; } img.setImageBitmap(grayBitmap); } }
原图:
结果:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories