Android studio配置OpenCV的JNI接口,实现C++代码编程

这篇具有很好参考价值的文章主要介绍了Android studio配置OpenCV的JNI接口,实现C++代码编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、下载OpenCV-android-sdk

二、新建项目

三、导入OpenCV包

 四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件

五、修改Cmake文件

 六、配置app的build.gradle文件

 七、测试


一、下载OpenCV-android-sdk

OpenCV官网地址:https://opencv.org/ 

点击Library-->Releases,下载Android版本,解压得到 OpenCV-android-sdk文件夹。​​​​​​

android studio 导入opencv,android studio,c++,opencv,java

二、新建项目

打开Android studio, File-->New-->New Project,选择最后一项Native C++

android studio 导入opencv,android studio,c++,opencv,java

 进入配置页面,命名为test,点击Next

android studio 导入opencv,android studio,c++,opencv,java

 C++标准根据自身需求设置,这里我选择默认工具链,点击Finish

android studio 导入opencv,android studio,c++,opencv,java

 项目建成后,在真机/模拟器上运行,试一下效果

android studio 导入opencv,android studio,c++,opencv,java

三、导入OpenCV包

点击File-->New-->Import module,选择刚刚解压的OpenCV-android-sdk文件夹,找到sdk,

修改Module name为opencv,点击Finish

android studio 导入opencv,android studio,c++,opencv,java

 点击完Finish之后,会报错,需要把红框中的代码注释掉,蓝框中的Sdk版本型号与app下的build.gradle(绿框)的Sdk版本型号一致。

android studio 导入opencv,android studio,c++,opencv,java

 点击File-->Project Structure-->Dependencies-->app-->Module Dependency

android studio 导入opencv,android studio,c++,opencv,java

 勾选opencv,点击OK

android studio 导入opencv,android studio,c++,opencv,java

 四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件

1、把OpenCV-android-sdk下的OpenCV-android-sdk/sdk/native/jni/include文件夹拷贝到你项目

src/main/cpp下面。

android studio 导入opencv,android studio,c++,opencv,java

2、把OpenCV-android-sdk下的OpenCV-android-sdk/sdk/native/libs文件夹拷贝到你项目src/main/

 下面,并修改名字为JniLibs。

android studio 导入opencv,android studio,c++,opencv,java

五、修改Cmake文件

打开CMakeLists.txt文件,添加如下代码(推荐复制),修改的地方只有最上面和最下面两部分,中间部分为系统生成的内容,没有改动。

# 设置include文件夹的地址
include_directories(${CMAKE_SOURCE_DIR}/include)
add_library(libopencv_java4 SHARED IMPORTED)
set_target_properties(libopencv_java4 PROPERTIES IMPORTED_LOCATION
        E:/test/app/src/main/JniLibs/${ANDROID_ABI}/libopencv_java4.so)

把红框里的地址改成你的JniLibs地址(四.2创建的文件夹地址)

android studio 导入opencv,android studio,c++,opencv,java

 在最下面的target_link_libraries添加libopencv_java4

android studio 导入opencv,android studio,c++,opencv,java

 六、配置app的build.gradle文件

1、添加的第一部分

externalNativeBuild {
            cmake {
                cppFlags ''
                arguments "-DANDROID_STL=c++_shared"
            }
        }
        ndk {
            abiFilters 'x86', 'x86_64', 'armeabi-v7a',
                    'arm64-v8a'
        }

 android studio 导入opencv,android studio,c++,opencv,java

 2、添加的第二部分

注意:jniLibs.srcDirs = [‘libs’] 千万不要写为:jniLibs.srcDirs = [src/main/JniLibs’] 否则程序会报错

    sourceSets {
        main {

            jniLibs.srcDirs = ['libs']
        }
    }

    splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
            universalApk true //generate an additional APK that contains all the ABIs
        }
    }

android studio 导入opencv,android studio,c++,opencv,java

 3、添加的第三部分

    project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]

    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.versionCodeOverride =
                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 1000000 + android.defaultConfig.versionCode
        }
    }

android studio 导入opencv,android studio,c++,opencv,java

 七、测试

先构建,点击Make Project(小锤子),然后打开native-lib.cpp文件,先试着引入一下包,输入

#include <opencv2/opencv.hpp> 如果报红,点击下面1和2就不报红了

android studio 导入opencv,android studio,c++,opencv,java

 包含OpenCV的头文件不报红就配置成功了,如下:

android studio 导入opencv,android studio,c++,opencv,java

恭喜你,配置成功了,可以开始在Android平台下用C++来开发opencv代码了。 文章来源地址https://www.toymoban.com/news/detail-686072.html

到了这里,关于Android studio配置OpenCV的JNI接口,实现C++代码编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【android studio 简单配置多语言国际化app 一行代码实现切换语言】

    新版本的android studio配置多语言其实很简单,不过目前网上找到的几个博客都搞得很复杂,可能是版本比较老的时候出的方案,今天分享一下怎么一行代码切换语言. 1.切换语言你得先有语言对应的文本,推荐插件一键生成.在设置里搜索Androidlocalize,直接安装即可 2.安装好了以后右键

    2024年02月11日
    浏览(51)
  • 安卓Android Studio JNI开发问题澄清与汇总

    AndroidBitmap_lockPixels和AndroidBitmap_unlockPixels的底层逻辑就是在处理bitmap中的数据的时候,把内存锁定,防止像素缓存被改变导致数据变化。 这篇文章有具体介绍相关的机制 下面是Bitmap操作的示例代码: Java端代码: 使用时,可以直接调用NativeUtils中的processImage方法即可。当然,

    2023年04月09日
    浏览(57)
  • Android Studio中使用cmake开发JNI实战

    JNI学习大纲 一、JNI编程入门 二、Android Studio中使用cmake开发JNI实战 第一章节我们介绍了JNI的开发步骤,那这一章节我们就开始在Android Studio中实战一下吧,Let\\\'s Start。 AS中菜单栏选择ToolsSDK Manager 在Android SDK中选择SDK Tools,安装CMake和NDK。 在项目工程下的src/main创建cpp目录,编

    2024年02月14日
    浏览(55)
  • ffmpeg-android studio创建jni项目

    android - defaultConfig -externalNativeBuild - cmake 配置c++使用标准 android - externalNativeBuild - cmake 1 、配置cmake文件路径 2、配置cmake的版本 cmake_minimum_required cmake最低版本要求 project 设置项目名称 add_library 添加库并设置库的源文件 1、 Normal Libraries name:库名称 STATIC|SHARED|MODULE:库类型(静态

    2024年02月09日
    浏览(45)
  • 学习笔记—Android studio导入OpenCV配置使用

    官网下载sdk,打开opencv官网,点击Android,完成后解压 https://opencv.org/ 解压后,文件夹下有这些文件 samples Android代码工程 sdk 包含opencv的Java的接口和JNI接口等 打开Android studio,选择模板,这时选择最后一项Native C++,然后进入配置界面。 这里注意你下载的Android-sdk版本来选择

    2024年02月07日
    浏览(52)
  • Android JNI传递CallBack接口并接收回调

    在JNI中,可以通过传递一个Java接口对象的引用给C++代码,并在C++代码中调用该接口对象的方法,实现JAVA层监听C++数据变化,下面是一个简单的示例: 在Java代码中定义一个CallBack接口和JNI方法 使用JNI实现将Java接口对象传递给C++代码,并在C++代码中调用接口方法。 在C++代码中

    2024年02月12日
    浏览(40)
  • 利用android studio 生成 JNI需要的动态库so文件 图文详解

    到官网下载,此处不再陈述 JNI 是JDK里的内容,电脑上正确安装并配置JDK即可。 直接在Android studio下载(File----Settings) 工具一: AndroidStudio下载安装cmake(调试Native时会使用到LLDB,请一同勾选下载安装) 工具二: 用NDK的脚本工具使用ndk-build 新建项目,选择Native C++,如下图所

    2024年02月09日
    浏览(87)
  • visual studio配置调用c++ dll opencv为例

    1,配置VC++目录,包含目录和库目录。 2,链接器-输入-包含目录 3,生成目录下包含对应的dll文件 4,需注意对应的Debug,Release及X86,X64选项

    2024年02月17日
    浏览(54)
  • jni-Android Bitmap与OpenCV cv::Mat互转

    在封装so库的时候,底层c++代码的实现使用了OpenCV对图片进行操作,而Android中从摄像头中获取到的图片数据类型是Bitmap数据类型的,所以这里就避免不了做数据类型的转换。转换的方案主要有两种, 一种是封装的JNI接口方法直接接收cv::Mat数据类型的参数, 第二种是JNI方法的

    2024年02月01日
    浏览(43)
  • 【图文详解】Android Studio(新版本) 配置OpenCV库,解决出现的各种问题

    写这篇文章的目的就是记录自己在配置OpenCV库时遇到的问题。在网上查找相关资料时,发现很多Android Studio都是老版本,并且出现的问题都不能被解决。自己在配置过程中出现的问题都进行记录下来并一一解决。 点击 New Project 选择界面 配置相关参数 创建成功 确保创建成功(

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包