Android Studio arctic Fox(北极狐)导入openCV

news2024/12/23 2:53:06

Android studio arctic Fox在引入opencv的时候按照正常的File->New->Import Module操作时,出现无法点击“Next”和“Finish”的情况。如下图

 

所以我们使用另外的方法进行引入。

准备工作:

1,Android Studio

2,下载opencv,我这下载的是opencv3.4.6。https://udomain.dl.sourceforge.net/project/opencvlibrary/3.4.6/opencv-3.4.6-android-sdk.zip

开始导入:

1,创建一个新的工程,随便命名

2,将opencv-3.4.6-android-sdk.zip下载下来之后,进行解压。然后将解压出来的java包全部复制到工程目录下。并且重命名opencv346.下图为复制的文件目录。

 

下图为在Andrid studio里面的目录

3,将 opencv-3.4.6-android-sdk包里面的sdk/native/libs目录下的so文件复制到opencv346的libs目录下。我这里主要复制arm64-v8a,armeabi,armeabi-v7a这几个主流架构的。如下图

 

3,将opencv-3.4.6-android-sdk包里面的sdk目录下的build.gradle复制到opencv346包下,得到如下图

设置build.gradle ,修改android的version部分,javeVersion部分,还有sourceSets部分。不然有可能找不到资源路径。我这设置如下代码

// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.

//
// Notes about integration OpenCV into existed Android Studio application project are below (application 'app' module should exist).
//
// This file is located in <OpenCV-android-sdk>/sdk directory (near 'etc', 'java', 'native' subdirectories)
//
// Add module into Android Studio application project:
//
// - Android Studio way:
//   (will copy almost all OpenCV Android SDK into your project, ~200Mb)
//
//   Import module: Menu -> "File" -> "New" -> "Module" -> "Import Gradle project":
//   Source directory: select this "sdk" directory
//   Module name: ":opencv"
//
// - or attach library module from OpenCV Android SDK
//   (without copying into application project directory, allow to share the same module between projects)
//
//   Edit "settings.gradle" and add these lines:
//
//   def opencvsdk='<path_to_opencv_android_sdk_rootdir>'
//   // You can put declaration above into gradle.properties file instead (including file in HOME directory),
//   // but without 'def' and apostrophe symbols ('): opencvsdk=<path_to_opencv_android_sdk_rootdir>
//   include ':opencv'
//   project(':opencv').projectDir = new File(opencvsdk + '/sdk')
//
//
//
// Add dependency into application module:
//
// - Android Studio way:
//   "Open Module Settings" (F4) -> "Dependencies" tab
//
// - or add "project(':opencv')" dependency into app/build.gradle:
//
//   dependencies {
//       implementation fileTree(dir: 'libs', include: ['*.jar'])
//       ...
//       implementation project(':opencv')
//   }
//
//
//
// Load OpenCV native library before using:
//
// - avoid using of "OpenCVLoader.initAsync()" approach - it is deprecated
//   It may load library with different version (from OpenCV Android Manager, which is installed separatelly on device)
//
// - use "System.loadLibrary("opencv_java3")" or "OpenCVLoader.initDebug()"
//   TODO: Add accurate API to load OpenCV native library
//
//
//
// Native C++ support (necessary to use OpenCV in native code of application only):
//
// - Use find_package() in app/CMakeLists.txt:
//
//   find_package(OpenCV 3.4 REQUIRED java)
//   ...
//   target_link_libraries(native-lib ${OpenCV_LIBRARIES})
//
// - Add "OpenCV_DIR" and enable C++ exceptions/RTTI support via app/build.gradle
//   Documentation about CMake options: https://developer.android.com/ndk/guides/cmake.html
//
//   defaultConfig {
//       ...
//       externalNativeBuild {
//           cmake {
//               cppFlags "-std=c++11 -frtti -fexceptions"
//               arguments "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni" // , "-DANDROID_ARM_NEON=TRUE"
//           }
//       }
//   }
//
// - (optional) Limit/filter ABIs to build ('android' scope of 'app/build.gradle'):
//   Useful information: https://developer.android.com/studio/build/gradle-tips.html (Configure separate APKs per ABI)
//
//   splits {
//       abi {
//           enable true
//           reset()
//           include 'armeabi-v7a' // , 'x86', 'x86_64', 'arm64-v8a'
//           universalApk false
//       }
//   }
//

apply plugin: 'com.android.library'

println "OpenCV: " + project.buildscript.sourceFile

android {
    compileSdkVersion 29
    //buildToolsVersion "27.0.3" // not needed since com.android.tools.build:gradle:3.0.0

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 29
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
            java.srcDirs = ['src']
            aidl.srcDirs = ['src']
            res.srcDirs = ['res']
            manifest.srcFile 'AndroidManifest.xml'
        }
    }
}

dependencies {
}

4,设置settings.gradle。添加include ':opencv346'

如此,opencv346已经可以作为一个依赖库使用了。

验证:

1,在app中build.gradle的dependecies下面输入

implementation project(':opencv346')

引入opencv。然后输入对应代码验证

if (OpenCVLoader.initDebug()){
     Log.e(TAG, "onCreate: load Opencv library cuccess!" );
}else{
     Log.e(TAG, "onCreate: can't load Opencv library" );
}

出现日志为

onCreate: load Opencv library cuccess!

即可说明opencv已经加载成功,可以正常使用了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纪念2022年11月软考高项(信息系统项目管理师)一次通过的经验随笔

一、备考背景2022年5月的浙江软考因为疫情防控原因临时取消&#xff0c;我离杭州买房又远了几分。众所周知&#xff0c;杭州是炒房投资客的香饽饽&#xff0c;即使主城区购房摇号制度不停打补丁&#xff0c;也难济于事。自住客为了与投资客抗衡&#xff0c;一靠社保&#xff0c…

新品做软文推广发布在哪些平台好?

新产品上市前后&#xff0c;会经历开发期、介绍期、成长期、成熟期、衰退期五个阶段&#xff0c;每个阶段都需要软文推广的助力&#xff01; 当一款新品上市前后往往会面临着无法打开市场、产品卖不出去等问题&#xff0c;这个时候软文推广就要做到位&#xff0c;除了文章撰写…

在centos7安装KubeSphere

节点准备 设置hostname hostnamectl set-hostname ks-m4 关闭防火墙 启动&#xff1a; systemctl start firewalld 关闭&#xff1a; systemctl stop firewalld 查看状态&#xff1a; systemctl status firewalld 开机禁用 &#xff1a; systemctl disable firewalld 开机…

SAP 通过 OData Service 反查 CDS View 位置 视图「Workaround」

前言 使用场景&#xff1a;目前已知 OData Service 由 CDS View 发布&#xff0c;但是想要查看该 CDS 的具体内容 根据 OData Service 获取关键信息盲猜对应底表通过 SE11 反查引用位置 猜底表 目前已知 OData Service URL: http://xxx.xxx.com:xxxx/sap/opu/odata/sap/ZCD…

栉风沐雨砥砺行,春华秋实满庭芳——华秋电子2022年度大事记

岁序更替&#xff0c;春华秋实 转眼间&#xff0c;2022年已是过去 回首2022年&#xff0c;华秋肩负使命 持续为电子产业增效降本。 我们加大研发投入&#xff0c;提升全球交付保障能力&#xff1b; 我们以创新引领发展&#xff0c;以实干笃定前行&#xff1b; 以品质为基…

JetBrains 学生和教师认证教程

目录一、学生和教师授权申请方式二、申请网址三、激活JetBrains产品&#xff08;如PyCharm、IDEA&#xff09;一、学生和教师授权申请方式 详见官方教程&#xff1a; JetBrains 学生和教师授权申请方式 二、申请网址 学生和教师可以使用在学校注册的邮箱账号来申请。 新申请…

「EZEC-4」可乐(2种方法:差分+位运算 | 枚举+字典树)

「EZEC-4」可乐 洛谷&#xff1a;「EZEC-4」可乐 题目背景 很久以前&#xff0c;有一个 pigstd&#xff0c;非常迷恋美味的可乐。为了得到美味的可乐&#xff0c;他几乎用尽了所有的钱&#xff0c;他甚至对自己的 npy 也漠不关心其实是因为他没有npy&#xff0c;更不爱好看戏…

C语言实现烟花表白,内含源码!!

虽然现在看烟花有一定难度&#xff0c;但代码式烟花可以随时随地看&#xff01; 烟花的代码很多&#xff0c;实际上是可以用 Python、HTML5 等语言写烟花&#xff0c;但今天主要想和大家分享用C语言写的烟花代码&#xff0c;非常细致和实用。 同学们一定要亲自敲一遍&#xf…

机器视觉(八):图像特征提取

目录&#xff1a; 机器视觉&#xff08;一&#xff09;&#xff1a;概述 机器视觉&#xff08;二&#xff09;&#xff1a;机器视觉硬件技术 机器视觉&#xff08;三&#xff09;&#xff1a;摄像机标定技术 机器视觉&#xff08;四&#xff09;&#xff1a;空域图像增强 …

理解文件系统

之前的东西&#xff0c;全部是在内存中的。但是我们知道&#xff1a;不是所有的文件&#xff0c;都被打开了。大量的文件&#xff0c;就在磁盘上放着&#xff0c;什么都不做。这些文件非常多&#xff0c;杂&#xff0c;乱。而磁盘级别的文件管理&#xff0c;本质工作就能够快速…

maven第三篇:maven 简单命令

上一篇聊了在IDE中如何创建maven项目&#xff0c;后面说到了maven会有一些常用的命令&#xff0c;现在就对命令进简单演示。 注意&#xff1a; 1&#xff1a;命令需要在windows桌面系统下的dos窗口运行。 2&#xff1a;下面演示的命令除了查看版本信息的命令外&#xff0c;很…

科技创未来!中国低代码平台公司流辰信息用实力护您增产又增收!

流辰信息科技&#xff0c;是一家以研发低代码开发平台为使命的中国低代码平台公司&#xff0c;坚持以客户需求为主导&#xff0c;以开源促创新&#xff0c;努力做强做大流辰信息&#xff0c;争创宏伟未来。 在多年的奋斗耕耘中&#xff0c;流辰信息坚持研发&#xff0c;让产品的…

磨金石教育分享||想转行学习插画,应该怎么做,需要什么基础?

近年来&#xff0c;随着互联网行业的快速崛起&#xff0c;来自广告、自媒体、影视、游戏、动漫等多个行业对插画师这一职业求贤若渴。招聘网站信息不觉&#xff0c;特别是一些经验丰富&#xff0c;水平较高的插画师&#xff0c;在业内享有较高的声誉&#xff0c;是各个公司的主…

LaTeX 进阶语法

文章目录LaTeX进阶语法一、 样式排版1、 字体和字号1.1 字体样式1.2 字号1.3 ctex宏包更改中文字体1.4 文字装饰2、 段落格式和间距2.1 长度和长度变量2.2 行距2.3 段落格式2.4 水平间距2.5 垂直间距3、 页面和分栏3.1 页面介绍3.2 利用 geometry 宏包设置页面参数3.3 页面内容…

Palo Alto PAN-OS 11.0 - ML 驱动的 NGFW

使用 PAN-OS 11.0 Nova 以零压力阻止零日恶意软件 请访问原文链接&#xff1a;Palo Alto PAN-OS 11.0 - ML 驱动的 NGFW&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org PAN-OS 11.0 Nova 使用 PAN-OS 11.0 Nova 以零压力…

fastjson漏洞 - Fastjson1.2.47反序列化漏洞

文章目录Fastjson简介历史漏洞Fastjson < 1.2.41Fastjson < 1.2.42Fastjson < 1.2.47Fastjson < 1.2.66漏洞发现Fastjson寻找Fastjson报错识别漏洞检测漏洞复现Fastjson1.2.47反序列化漏洞影响版本实验环境JNDIJNDI注入 RMIJNDI注入 RMI 利用Fastjson简介 Fastj…

销售管理和销售分析怎么做?

作为一个优秀的销售&#xff0c;除了要会和客户沟通之外&#xff0c;拥有复盘和分析的能力能够事半功倍&#xff0c;为未来的营销指引方向。 很多销售也会有用Excel制作报表&#xff0c;复盘整理并向领导汇报的习惯&#xff0c;但是往往由于缺乏专业的分析概念和方法&#xff0…

用Astro建立一个静态站点

介绍 Astro是一个相对较新的web框架&#xff0c;它可以帮助你轻松地建立快速干净的网站。Astro能够与目前主流的JavaScript前端框架一起工作&#xff0c;如React, Vue或solid。 终端用户喜欢网站快速展示&#xff0c;但开发人员喜欢用复杂的JavaScript框架来构建网站。 Astro就…

Go语言包管理学习

重点 首先你要确认你的GOPath 我是winodw系统&#xff0c;所以如图 所以你要创建的文件是在$GOPATH(我这里是E:\LearnFile\GO)\src文件下 项目结构 你只能有一个main包和main函数 go文件内容 ./hello/hello.go 这是正常引入&#xff0c;不会报错&#xff0c;但是这个不是主…

logback重写DBAppenderBase连接达梦数据库实现自定义日志

一. 背景 本来项目组使用的数据库是Oracle&#xff0c;如今要切换到达梦。。。早期的时候就讨论过数据库日志迁移的问题&#xff0c;本来以为是一个小问题可以随便搞定&#xff0c;没想到是踩坑了&#xff0c;记录下&#xff1a; 二. 如果已经实现Oracle自定义日志 简单来说&a…