Android Studio之opencv极简环境配置(2022-1-30亲测有效)

一、基础创建项目步骤

1、先创建一个app项目
在这里插入图片描述
2、选择Basic Activity在这里插入图片描述
3、完成基础项目创建在这里插入图片描述
4、运行一下看看虚拟机是否可用
在这里插入图片描述
5、连接真机测试
因为会用到拍照功能,所以需要使用真机进行测试,接下来配置一下真机进行测试。
参考这篇博客
①、配置sdk环境变量
需要根据安装Android Studio时候的Sdk以及Sdk文件里面的platform-tools进行配置,我的路径在:

C:\Users\Administrator\AppData\Local\Android\Sdk
C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools

在这里插入图片描述
在这里插入图片描述
配置好后打开cmd输入adb,如果出现以下文字则配置成功。
在这里插入图片描述
②、下载手机对应的Android版本
我的在系统管理->关于手机里面可看到Android版本号,我的为10,下载好对应的Android版本。
在这里插入图片描述
在这里插入图片描述

勾选如图两个,然后点击Apply。等待下载完成,点击finish即可。
③、安装USB Driver到手机
打开开发者选项,一般是设置里面的版本信息->软件版本号点击7下,打开开发者选项后进入,打开usb调试。用 充电线连接到电脑。手机弹出是否允许usb调试,点击允许。
在这里插入图片描述
可以发现,已经安装成功了。

二、OpenCv环境配置

1、增加opencv模块
先到官网进行下载,版本不限,也可到这个博客从网盘下载指定的Opencv库。
下载好后解压,3开头的版本多一个app文件,4开头的版本没有,区别不大,都可以用。很多教程都导入java模块。。。我在这踩坑贼久,最便捷的方法就是直接导入sdk文件夹。

导入模块的方法:
①、新建模块在这里插入图片描述
②、定位到sdk目录
在这里插入图片描述
点击ok就行,就导入成功了。导入成功后会多出一个可展开的opencv文件夹(自己命名的),一定要能展开。然后下面会多一个opencv的build.gradle。
在这里插入图片描述
③、修改build.gradle
把opencv(自己命名的)的build.gradle里面的版本信息改成与app里面的build.gradle版本信息相一致。如下图所示,第一幅图中的三个位置改成第二幅图对应位置的版本号。
在这里插入图片描述
在这里插入图片描述
④、导入
在这里插入图片描述
按照如图所示顺序点击,会出现你刚刚加载的包,选中导入即可,接下来,点击如图所示进行make project,如果不报错,则成功了。在这里插入图片描述

三、opencv体验

1、导入图片资源
直接复制图片,然后粘贴到res下的drawable文件夹下,弹出窗口后直接点击ok。
在这里插入图片描述
2、添加组件
选择activity_main.xml,然后找到button,拖进左边白色框中。
在这里插入图片描述
拖动下面这个。第一个是button按钮,第二个是图片。图片拖入后会让你选择资源,选中导入的图片即可。
在这里插入图片描述
用code预览,发现还没定义,打开MainActivity.java,进行定义
在这里插入图片描述
在这里插入图片描述
进行初始化,先实现一个函数:

private void initLoadOpenCv(){
    boolean success= OpenCVLoader.initDebug();
    if(success){
        Toast.makeText(this.getApplicationContext(), "Loading Opencv Libraries", Toast.LENGTH_SHORT).show();
    }
    else{
        Toast.makeText(this.getApplicationContext(), "WARNING:COULD NOT LOAD Opencv Libraries!", Toast.LENGTH_SHORT).show();
    }
}

然后在onCreate函数下调用它。
绑定组件:
在这里插入图片描述
3、与运算例子
与运算的两张图片尺寸大小要相同。
完整的MainActivity.java代码如下:

package com.example.tstapp;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;

import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Core;
import org.opencv.core.Mat;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {
    private Button bt1;
    private ImageButton imgbt1;
    private Mat mat1;
    private Mat mat2;
    private Mat mat3;
    private Bitmap bitmap1;
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mat1.release();
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initLoadOpenCv();
        bt1=findViewById(R.id.button);
        imgbt1=findViewById(R.id.imageButton);
        mat1=new Mat();
        mat2=new Mat();
        mat3=new Mat();
        try{
            mat1= Utils.loadResource(this,R.drawable.dog);
            mat2= Utils.loadResource(this,R.drawable.test);
        } catch (IOException e) {
            e.printStackTrace();
        }
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Core.bitwise_and(mat1,mat1,mat3);
                bitmap1=Bitmap.createBitmap(mat3.width(),mat3.height(),Bitmap.Config.ARGB_8888);
                Utils.matToBitmap(mat3,bitmap1);
                imgbt1.setImageBitmap(bitmap1);
            }
        });
    }
    private void initLoadOpenCv(){
        boolean success= OpenCVLoader.initDebug();
        if(success){
            Toast.makeText(this.getApplicationContext(), "Loading Opencv Libraries", Toast.LENGTH_SHORT).show();
        }
        else{
            Toast.makeText(this.getApplicationContext(), "WARNING:COULD NOT LOAD Opencv Libraries!", Toast.LENGTH_SHORT).show();
        }
    }
}

其中的dog是导入的图片资源,上面代码进行的是同一张图片与运算,效果如下:
按钮点击前:
在这里插入图片描述

按钮点击后:在这里插入图片描述

4、灰度转换例子
按钮点击函数改为如下函数。

        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Imgproc.cvtColor(mat1,mat3,Imgproc.COLOR_BGRA2GRAY);
                bitmap1=Bitmap.createBitmap(mat3.width(),mat3.height(),Bitmap.Config.ARGB_8888);
                Utils.matToBitmap(mat3,bitmap1);
                imgbt1.setImageBitmap(bitmap1);
            }
        });

在这里插入图片描述

至此,算把环境彻底跑通了。

  • 17
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
要在Android Studio中导入OpenCV 2022,你可以按照以下步骤进行操作: 1. 首先,下载OpenCV 2022的安装包,你可以从官方网站下载。安装包是一个zip格式的文件。 2. 下载完成后,解压缩安装包到一个英文目录下。 3. 打开Android Studio,并打开你的项目。 4. 在项目的根目录下找到build.gradle文件,双击打开。 5. 在build.gradle文件中,找到dependencies部分。 6. 在dependencies部分中,添加以下代码: ``` implementation project(':opencv') ``` 这将添加OpenCV库的依赖。 7. 在项目的根目录下创建一个名为opencv的文件夹。 8. 将解压缩后的OpenCV文件夹复制到opencv文件夹中。 9. 在Android Studio中,点击菜单栏的File -> Sync Project with Gradle Files,以同步项目。 10. 现在你可以在你的项目中使用OpenCV API了。 请注意,以上步骤是基于OpenCV 2022Android Studio的最新版本。具体步骤和界面可能会因版本不同而有所变化。确保你下载的是最新版本的OpenCV,并根据实际情况进行相应的调整。 #### 引用[.reference_title] - *1* *2* [【OpenCV for AndroidAndroid Studio集成OpenCV](https://blog.csdn.net/diejingbu1567/article/details/102014327)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Android Studio BumBleBee导入OpenCV-2022-03-28](https://blog.csdn.net/qq_43631827/article/details/123803964)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

血狼傲骨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值