【首发】AndroidStudio配置JavaCV环境

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环境遇到瓶颈的朋友作为一个参考。

版权申明: 一切步骤均来自网络,我只是将其进行统一整理,可随意转载,对于上面提到关于测试代码的问题,若代码原作则看到并且不同意使用,请及时留言,我将立即道歉删除。

时间: 2024-10-02 14:28:10

【首发】AndroidStudio配置JavaCV环境的相关文章

Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)

原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量) 用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读.在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值.接着判断当前目录下是否存在bin\catalina.bat,如果文件

sublime配置java环境

今天突然不想用eclipse编写java了,觉得sublime挺好用,就想用sublime配置java环境,以下是过程以及出现的问题. 一.配置Java环境 1.打开我的电脑–属性–高级–环境变量 2.新建两个环境变量: JAVA_HOME=D:\Program Files\Java\jdk1.7.0_51 CLASSPATH= .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 3.编辑Path环境变量,增加如下路径: %JAVA_HOME%

在ubuntu中配置java环境变量遇到的一些问题

最近因为重装了系统,所以需要重新配置java环境变量,本来打算在/etc/environment中配置的,但是配置好以后重启发现登录不进图形界面了,ctrl+alt+F2~6都可以进入命令行,但是在命令行中尝试用sudo su切换到root用户又会失败,查了一些资料后发现是因为environment中不要用export来配环境变量,这样会导致登录失败的问题,而且因为配java路径的时候我们在原来的PATH前面添加了一些路径,导致后面的/bin和/usr/bin等目录都找不到了,因此也就无法找到s

Python第一天(下):sublime text 3 快捷键大全以及配置编译环境

内容为网络转载 Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键! Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键!其实sulime text菜单栏各个选项中都会提示相关的快捷键,各位可以自己去

linux配置java环境变量(详细)

一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车.之后会在当前目录下生成一个jdk1.6.0_14目录,你可以将它复制到 任何一个目录下. 二. 需要配置的环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们

C#-VS配置开发环境

配置开发环境 包含的开发环境 LightSwith LightSwitch 微软出品 web界面开发部署非常方便

在 Linux 中配置 SFTP 环境

做运维的朋友,应该经常会碰到这样的问题,研发需要新上一个web项目,需要上传文件到服务器上,并且仅仅是上传项目,解决方法一边有两种,sftp和ftp,今天讲如何使用sftp让系统用户用户上传项目的权限,并且实现chroot和无法使用ssh登录到系统: SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可信数据流下的文件访问.文件传输以及文件管理功能.当我们为SFTP配置c

配置Android环境遇到的问题及解决办法

配置Android环境遇到的问题及解决办法: 1 环境安装地址 http://pan.baidu.com/s/1jGzNzyI 2 其他: 2.1 安装 2.1.1 安装JDK,JRE 成功安装之后,进行测试是否真的成功安装,点击[开始]----[运行]----输入 CMD,在命令提示符里面输入"Java -version"并按回车键,出现版本号则安装成功. 2.1.2 安装Adb 2.1.3 打开Eclipse 2.2 配置环境变量: 2.2.1 配置JAVA环境变量 (见下方2.2

在CentOS6.4中安装配置LAMP环境的详细步骤

原文:在CentOS6.4中安装配置LAMP环境的详细步骤 本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要root权限,输入‘su -’命令后输入密码即可切换root身份. 一.修改设置对安装做准备 1. 防火墙设置 设置/etc/sysconfig/iptables文件允许80端口和3306端口.因为80端口是http协议所使用的端口,如果防火墙