Androidstudio配置opencv

Android配置opencv,因为最近上课老师一直在讲解opencv的使用,以及opencv的在图像处理和图像加载方面的强势,让我对opencv有一种想要去了解的心情,记得在去年我在对某个项目进行图片编辑的时候接触到了opencv,当初是使用了c++对opencv的使用,使用了vs2017+windows+opencv进行配置,在c++中include opencv的库进行开发,本文讲解怎么在Androidstudio中进行配置opencv和opecv的简单运行。
首先要下载opencv 的Android源码:https://opencv.org/releases/
在官网中下载你需要的版本对应的opencv的文件:
我采用的是3.4.7的版本
在这里插入图片描述
话说如果直接的网络不太好的老哥可以试试用xshell 连接自己的服务器,然后用服务器wget下载后,再传入到自己的本机上,这样的速度会比自己的下载快得多,因为一般大公司的网络都优化过,下载速度也就会比我们自己下载要快得多。
把文件下载下来并解压,不需要新建文件夹进行解压,可以直接解压,解压后的文件是OpenCV-android-sdk
好了,废话不多说,文件下载完毕后,开始配置
1.第一步
选择file->new->import module 导入刚刚解压的OpenCV-android-sdk,选择OpenCV-android-sdk\sdk\java,此时能够看到OpenCVLibrary340被导入进来,然后next->finish即可。导入后,我们的project目录下有一个OpenCVLibrary347的目录。
在这里插入图片描述

2.第二步

在project中去添加依赖,步骤如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择opencv的资源包即可

3.第三步
把OpenCV-android-sdk\sdk\native\libs目录下的库复制到我们的project的app\libs目录下,具体如图所示:

在这里插入图片描述
这个目录下存放的是CPU架构相关的库,可以符合自己CPU架构的复制进去。我这里复制了armeabi和armeabi-v7a两个。(注:如果你是X86的架构就把x86的放进去,对应自己CPU架构。我模拟器设的X86,原来没放X86的导致没法在模拟器中安装apk)

4.第四步
还需要把opencv下面的build.gradle中的版本改为自己app中的build.gradl中的版本,版本一致
在这里插入图片描述
在这里插入图片描述
这两个版本必须要一致,不然无法加载成功opencv

5.第五步
最后一步,就是在app的build.gradle中加入刚刚复制后的库,即把下面的代码添加到gradle.build文件里就可以了:

sourceSets {
        main {
            jni.srcDirs = []
            jniLibs.srcDirs = ['libs']
        }
    }

在这里插入图片描述
然后加入后 对所有的gradle 重新编译一下,基本上是没有任何问题的,那么opencv就这样配置好啦。
我们来试一下吧:
示例代码:

package com.example.opencv;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;

import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgproc.Imgproc;

public class MainActivity extends AppCompatActivity {
    static {
        if(!OpenCVLoader.initDebug())
        {
            Log.d("opencv","初始化失败");
        }
    }
    private ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView)findViewById(R.id.image);
        Bitmap bitmap = BitmapFactory.decodeResource(this.getApplicationContext().getResources(), R.drawable.jjy1);
        Mat src = new Mat();
        Mat dst = new Mat();
        Utils.bitmapToMat(bitmap, src);
        //new Size(width, height)
        Imgproc.resize(src, dst, new Size(400,600),0,0,Imgproc.INTER_AREA);
        Bitmap bitmap1 = Bitmap.createBitmap(dst.cols(),dst.rows(),Bitmap.Config.RGB_565);
        Utils.matToBitmap(dst, bitmap1);
        imageView.setImageBitmap(bitmap1);
    }
}

运行后的效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值