【首发】AndroidStudio配置JavaCV环境
2016-04-21 10:25
621 查看
AndroidStudio配置JavaCV环境
由于最近参加一个比赛需要用到人脸识别,但赛方限制使用第三方服务商提供的API云服务调用,因此想到了使用javacv来实现,但通过百度、google搜索发现所有的教程都是在eclipse中搭建,为此头疼了好几天,今天早起重新搭建一气呵成。写此博客主要是给新手朋友们作为参考,也是我的第一篇博文。1、准备工作
2、环境搭建
3、测试程序
准备工作
-首先需要在google网站上下载javacv需要的包-网站:https://code.google.com/archive/p/javacv/downloads
-无法打开的朋友可用我分享的网盘下载 http://pan.baidu.com/s/1c2BIhmo
-下载的包: javacv-0.7-bin.zip、opencv-2.4.3-android-arm.zip
- 分别解压 javacv-0.7-bin.zip、opencv-2.4.3-android-arm.zip 到任意目录下
-此刻准备工作结束
环境搭建
1、使用AndroidStudio创建工程StudioTestJavaCV,名字可随意2、打开AndroidStudio工程,在Android视图下无法看到工程目录中的libs文件夹,因此点击Android,将其更换Project视图
将javacv-0.7-bin.zip 解压的文件夹中的 javacv.jar、javacpp.jar 拷贝到libs文件夹中
然后右键工程,选择Open Module Setting,选择Modules下的app(此为你的Module的名称)中的Dependencies,点击右侧绿色的加号(+),选择2.File dependency ,选择添加刚才拷贝进来的javacv.jar、javacpp.jar。
3、接下来需要拷贝.so,在eclipse中只需要在libs文件夹下建立armeabi文件夹即可,但是由于AndroidStudio使用gradle编译,于eclipse不同,因此按照eclipse中的方法将无法完成搭建。因此,follow me
还是同样的Project视图下,app>src>main 目录下新建jniLibs目录,然后再jniLibs下再新建armeabi目录
3、在 javacv-0.7-bin.zip 解压的文件夹中找到 javacv-android-arm.jar 将其解压出来
将该文件夹下的所有.so文件都拷贝到上一步新建的armeabi文件夹下
然后再将opencv-2.4.3-android-arm.zip 解压出来的目录下的 libs > armeabi 下的所有.so文件拷贝到上一步新建的armeabi文件夹下。
以上环境搭建完成
测试程序
图片翻转:注:本代码来自网络,若作者要求停止使用,请联系本人立即删除
package com.act.studiotestjavacv; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import static com.googlecode.javacv.cpp.opencv_core.IPL_DEPTH_8U; import static com.googlecode.javacv.cpp.opencv_core.cvFlip; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.widget.ImageView; import com.googlecode.javacv.cpp.opencv_core.IplImage; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView imageView = (ImageView) findViewById(R.id.img1); imageView.setImageResource(R.drawable.p4); // 实例化控件 ImageView img = (ImageView) findViewById(R.id.img); // 创建图像, p4是随便找的一张图像,这里可以自己随便找一张图片代替 Drawable drawable = idToDrawable(R.drawable.p4); Bitmap bitmap = this.drawableToBitmap(drawable); // 将Bitmap转化为IplImage IplImage iplImage = this.bitmapToIplImage(bitmap); // 处理图像,比如旋转图像 cvFlip(iplImage, iplImage, 0); // 再将IplImage转化为Bitmap bitmap = this.IplImageToBitmap(iplImage); img.setImageBitmap(bitmap); } /** * IplImage转化为Bitmap * @param iplImage * @return */ public Bitmap IplImageToBitmap(IplImage iplImage) { Bitmap bitmap = null; bitmap = Bitmap.createBitmap(iplImage.width(), iplImage.height(), Bitmap.Config.ARGB_8888); bitmap.copyPixelsFromBuffer(iplImage.getByteBuffer()); return bitmap; } /** * Bitmap转化为IplImage * @param bitmap * @return */ public IplImage bitmapToIplImage(Bitmap bitmap) { IplImage iplImage; iplImage = IplImage.create(bitmap.getWidth(), bitmap.getHeight(), IPL_DEPTH_8U, 4); bitmap.copyPixelsToBuffer(iplImage.getByteBuffer()); return iplImage; } /** * 将资源ID转化为Drawable * @param id * @return */ public Drawable idToDrawable(int id) { return this.getResources().getDrawable(R.drawable.p4); } /** * 将Drawable转化为Bitmap * @param drawable * @return */ public Bitmap drawableToBitmap(Drawable drawable) { if(drawable == null) return null; return ((BitmapDrawable)drawable).getBitmap(); } }
可以随便选择一张图片进行测试,效果如下
到这里本次Android端javacv环境的搭建过程已经结束了,这是我的第一篇博客,第一次写博客,想的太多,怕太粗略错过重点,又怕太复杂没有主次,总之是一个良好的开始,也算是作为一个学习的笔记作为后用,也希望能够给跟我之前一样在AndroidStudio上搭建javaCV环境遇到瓶颈的朋友作为一个参考。
版权申明: 一切步骤均来自网络,我只是将其进行统一整理,可随意转载,对于上面提到关于测试代码的问题,若代码原作则看到并且不同意使用,请及时留言,我将立即道歉删除。
相关文章推荐
- Android 多点触控
- Android对Bitmap处理的工具类
- Android调用手机中的应用市场,实现评分功能
- android 系统提示对话框(AlertDialog)的使用
- Android Overlay机制
- Android数据库——LitePal
- Android事件分发机制(二)
- Android.os包中一些类的使用
- Linphone-android 3.9.1 编译
- android源码解析之(十二)-->系统启动并解析Manifest的流程
- android studio 编译错误 :Duplicate failed copide in APK META-INF/NOTICE.txt解决办法
- Android、iOS支持的音频格式
- android 代码设置editText的 drableRight和drableRight的点击事件
- android 布局间设置分隔线
- Android中XML文件的读写
- Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
- adb常用命令和logcat使用
- android 常见问题
- android 常见问题汇总
- Android Bitmap换背景颜色