使用 OpenCV 进行 Android 开发

在本节中,我们将创建一个简单的应用程序,它除了加载 OpenCV 之外什么都不做。在下一节中,我们将扩展它以支持相机。

除了这个说明,你还可以使用一些视频指南,例如这个

  1. 打开 Android Studio 并选择Empty Views Activity创建空项目
  1. 设置项目:
    • 选择Java语言
    • 选择Groovy DSL构建配置语言
    • 选择Minumum SDK ,版本号不低于 OpenCV 4 Android 构建期间使用的版本
      • 如果你不知道,你可以在OpenCV-android-sdk/sdk/build.gradle以下文件中找到它android -> defaultConfig -> minSdkVersion
  1. 点击文件->新建->导入模块...,选择OpenCV SDK路径
  1. 将模块名称设置为OpenCV并按Finish

OpenCV 还提供实验性的 Kotlin 支持。请将 Android Kotlin 插件添加到MyApplication/OpenCV/build.gradle文件:

bash 复制代码
plugins {
    id 'org.jetbrains.kotlin.android' version '1.7.10' #version may differ for your setup
}

如果不这样做,您可能会收到错误:

bash 复制代码
Task failed with an exception.
-----------
* Where:
Build file '/home/alexander/AndroidStudioProjects/MyApplication/opencv/build.gradle' line: 4
 
* What went wrong:
A problem occurred evaluating project ':opencv'.
> Plugin with id 'kotlin-android' not found.
  1. 修复已在这里找到

  2. OpenCV 项目使用此功能。请在要阻止的文件buildConfig中启用它:MyApplication/OpenCV/build.gradle``android

像这样:

  1. 如果不这样做,您可能会收到错误:

    bash 复制代码
    JavaCameraView.java:15: error: cannot find symbol import org.opencv.BuildConfig; ^ symbol: class BuildConfig location: package org.opencv

    修复程序已在此处此处找到

  2. 将模块添加到项目:

    • 单击文件 -> 项目结构... -> 依赖项 -> 所有模块 -> +(添加依赖项按钮)-> 模块依赖项
  • 选择app
  • 选择OpenCV

在使用任何 OpenCV 函数之前,您必须先加载库。如果您的应用程序包含其他依赖于 OpenCV 的本机库,则应在 OpenCV 初始化加载它们。添加以下代码以在应用程序启动时加载库:

bash 复制代码
        if (OpenCVLoader.initLocal()) {
            Log.i(TAG, "OpenCV loaded successfully");
        } else {
            Log.e(TAG, "OpenCV initialization failed!");
            (Toast.makeText(this, "OpenCV initialization failed!", Toast.LENGTH_LONG)).show();
            return;
        }
  1. 选择一个设备来检查样本,然后按下run按钮运行代码
相关推荐
DisonTangor1 小时前
DeepSeek-OCR 2: 视觉因果流
人工智能·开源·aigc·ocr·deepseek
薛定谔的猫19821 小时前
二十一、基于 Hugging Face Transformers 实现中文情感分析情感分析
人工智能·自然语言处理·大模型 训练 调优
发哥来了1 小时前
《AI视频生成技术原理剖析及金管道·图生视频的应用实践》
人工智能
数智联AI团队1 小时前
AI搜索引领开源大模型新浪潮,技术创新重塑信息检索未来格局
人工智能·开源
不懒不懒1 小时前
【线性 VS 逻辑回归:一篇讲透两种核心回归模型】
人工智能·机器学习
冰西瓜6002 小时前
从项目入手机器学习——(四)特征工程(简单特征探索)
人工智能·机器学习
Ryan老房2 小时前
未来已来-AI标注工具的下一个10年
人工智能·yolo·目标检测·ai
2601_949833392 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
丝斯20112 小时前
AI学习笔记整理(66)——多模态大模型MOE-LLAVA
人工智能·笔记·学习
小鸡吃米…3 小时前
机器学习中的代价函数
人工智能·python·机器学习