Android 配置 OpenCV环境(Android Stdio 4.1.3 openCV 4.5.5)

可能是版本问题,之前我在网上找到的那些不需要OpenCV Manager的教程都不能使用。

1 下载opencv:

在官网中下载:https://opencv.org/releases/

在这里插入图片描述
解压到文件夹中
在这里插入图片描述

2 加载Module

选择 Menu -> “File” -> “New” -> “New Module” -> “Import Gradle project”

在这里插入图片描述
这种方法会将所有的OpenCV Android SDK内容拷贝到项目中,约200MB

选择openCV-android-sdk目录下的sdk文件夹,module名称改为:opencv

在这里插入图片描述
如果报错:A problem occurred evaluating project ‘:opencv’. Plugin with id ‘kotlin-android’ not found.,则注释掉build.grandle中的apply plugin: ‘kotlin-android’,

注意修改grandle的sdkVersion,修改到和项目相同。

然后同步(Sync Now)

在这里插入图片描述

此时可能会有没有安装CMAKE tool或者让你安装NDK之类的,

  • CMAKE工具在SDK manager - SDK tool中安装,
  • NDK按照它的提示进行安装

在这里插入图片描述

此时检查下setting.grandle是否包含类似的内容, 如果没有需要手动添加,正常情况下是有的:

include ':opencv'
project(':opencv').projectDir = new File(rootDir, 'OpenCV-android-sdk/sdk/')

3 添加依赖

在app/build.grandle中加入:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':opencv')

加入后的样子:

在这里插入图片描述
点击 SynC Now

此时OpenCV环境配置完成

4 使用前

在使用openCV时,需要加载库:
下面的两句任选则一句,添加在一个使用openCV之前的位置。

System.loadLibrary("opencv_java4"); 
OpenCVLoader.initDebug();

5 使用

之后可用正常使用openCV库,进行一个简单测试:

在这里插入图片描述

package com.example.opencvtest;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ImageView;

import org.opencv.android.Utils;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;

import static org.opencv.imgproc.Imgproc.COLOR_RGBA2BGRA;
import static org.opencv.imgproc.Imgproc.cvtColor;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        verifyStoragePermissions(this);

        ImageView iv = findViewById(R.id.iv);
        System.loadLibrary("opencv_java4");
        String path = Environment.getExternalStorageDirectory().getPath()+"/Saber.JPG";
        Mat a = Imgcodecs.imread(path);
        Bitmap bitmap = Bitmap.createBitmap(a.height(),a.width(), Bitmap.Config.ARGB_8888);
        a.convertTo(a, CvType.CV_8UC3);
        cvtColor(a, a, COLOR_RGBA2BGRA);
        Utils.matToBitmap(a,bitmap);
        iv.setImageBitmap(bitmap);
    }

    // Storage Permissions
    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };

    public static void verifyStoragePermissions(Activity activity) {
        // Check if we have write permission
        int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

        if (permission != PackageManager.PERMISSION_GRANTED) {
            // We don't have permission so prompt the user
            ActivityCompat.requestPermissions(
                    activity,
                    PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE
            );
        }
    }

}
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: OpenCV是一个开源的计算机视觉库,可以用于图像处理、特征检测和机器视觉等领域。OpenCV 4.5.5 是OpenCV的一个版本,其中包含了一些新的特性和改进。 CUDA是一个由NVIDIA开发的并行计算平台和编程模型,可以在NVIDIA GPU上运行并行计算任务。OpenCV 4.5.5中与CUDA相关的特性是通过使用CUDA加速的方式来提升图像处理和计算的性能。通过使用CUDA,OpenCV可以在支持CUDA的NVIDIA GPU上进行计算,从而加快了图像处理的速度。 Android SDK是用于开发Android应用程序的软件开发工具包。OpenCV 4.5.5也提供了Android SDK,使得开发人员可以在Android平台上使用OpenCV进行图像处理和计算任务。通过将OpenCV集成到Android应用程序中,开发人员可以利用OpenCV丰富的功能和高性能的图像处理算法,开发出功能强大的Android应用程序。 综上所述,OpenCV 4.5.5结合了CUDA和Android SDK的特性,提供了在支持CUDA的NVIDIA GPU上进行图像处理和计算,以及在Android平台上开发图像处理应用程序的能力。这使得开发人员可以更加高效地利用GPU的计算能力,实现更快速、更强大的图像处理任务。 ### 回答2: OpenCV是一个开源的计算机视觉库,它提供了一系列的算法和工具,用于图像处理、计算机视觉和模式识别等领域。而CUDA是英伟达推出的一种并行计算平台和编程模型,可以利用GPU的并行计算能力加速计算任务。Android SDK是用于开发Android应用程序的软件开发工具包。 OpenCV 4.5.5是OpenCV的一个版本,它添加了一些新功能和改进了一些已有的功能。其中,CUDA是其中的一个重要特性。CUDA可以在支持NVIDIA GPU的系统上使用,将OpenCV中的一些算法和任务加速。通过使用CUDA,我们可以利用GPU的强大并行计算能力,提高OpenCV在图像处理和计算机视觉任务上的性能。 而Android SDK是用于开发Android应用程序的工具包,它包含了一系列的工具和库,用于开发Android应用程序。使用Android SDK,我们可以开发出功能丰富、性能优秀的Android应用程序。通过集成OpenCV和CUDA,我们可以在Android设备上使用OpenCV计算机视觉算法,并利用CUDA加速计算任务。这使得我们可以在移动设备上实现高性能的图像处理和计算机视觉应用程序,为用户提供更好的体验。 总结来说,OpenCV 4.5.5 CUDA Android SDK是一种结合了OpenCV、CUDA和Android SDK的开发工具包、库或框架。它可以在支持NVIDIA GPU的Android设备上加速OpenCV计算机视觉任务,提高应用程序的性能和用户体验。 ### 回答3: OpenCV是一个开源的计算机视觉库,而CUDA是一种高性能的并行计算架构,而Android SDK是为开发Android应用程序提供的软件开发工具包。 OpenCV 4.5.5是OpenCV的一个版本,它支持CUDA加速。CUDA加速意味着OpenCV可以利用NVIDIA的CUDA框架来加速计算机视觉任务。CUDA通过将计算任务分发到并行处理单元(即GPU)上,可以加快计算速度。 在Android平台上,可以使用OpenCVAndroid SDK来进行开发。OpenCVAndroid SDK为开发者提供了许多函数和工具,可以在Android设备上进行计算机视觉任务的开发。通过将OpenCVAndroid SDK结合使用,开发者可以在Android应用中使用计算机视觉算法和技术。 因此,OpenCV 4.5.5 CUDA Android SDK是指基于OpenCV 4.5.5版本的Android SDK,并且可以利用CUDA加速进行计算机视觉任务的开发。开发者可以利用这个工具包来开发支持CUDA加速的Android应用程序,以获得更快的计算速度和更好的计算机视觉性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值