使用 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按钮运行代码
相关推荐
EasyCVR3 小时前
视频融合平台EasyCVR在智慧水利中的实战应用:构建全域感知与智能预警平台
人工智能·音视频
DisonTangor3 小时前
阿里开源Qwen3-Omni-30B-A3B三剑客——Instruct、Thinking 和 Captioner
人工智能·语言模型·开源·aigc
独孤--蝴蝶4 小时前
AI人工智能-机器学习-第一周(小白)
人工智能·机器学习
西柚小萌新4 小时前
【深入浅出PyTorch】--上采样+下采样
人工智能·pytorch·python
丁学文武4 小时前
大语言模型(LLM)是“预制菜”? 从应用到底层原理,在到中央厨房的深度解析
人工智能·语言模型·自然语言处理·大语言模型·大模型应用·预制菜
fie88894 小时前
基于MATLAB的声呐图像特征提取与显示
开发语言·人工智能
文火冰糖的硅基工坊5 小时前
[嵌入式系统-100]:常见的IoT(物联网)开发板
人工智能·物联网·架构
刘晓倩5 小时前
实战任务二:用扣子空间通过任务提示词制作精美PPT
人工智能
却道天凉_好个秋6 小时前
OpenCV(七):BGR
opencv·计算机视觉
shut up6 小时前
LangChain - 如何使用阿里云百炼平台的Qwen-plus模型构建一个桌面文件查询AI助手 - 超详细
人工智能·python·langchain·智能体