android 和 opencv 开发环境搭建

本文详细说明给android项目添加opencv库的详细步骤,并通过实现图片灰度化来查看配置是否成功。

下载OPENCV ANDROID SDK

到官网下载
打开 https://opencv.org/releases/

请添加图片描述
选择android,下载完成后解压出下面的文件:

请添加图片描述

安装android sdk 和 ndk

在Android studio中打开sdk管理器即可下载:
在这里插入图片描述

新建C++工程

打开Android studio,选择模板,这时选择最后一项Native C++,然后进入配置界面。

请添加图片描述配置项目

请添加图片描述选择C++14
请添加图片描述

配置OpenCV库

OpenCV库作为Module导入

导入OpenCV模块

具体步骤为:File->New->Import Module:
请添加图片描述

然后将OpenCV-android-sdk\sdk目录导入,最好顺便将模块名改成opencv+版本号。如下图,然后Next->Finish。

请添加图片描述
改OpenCV下的build.gradle文件, 将下图中的两处改为与app模块的设置一致请添加图片描述

添加依赖,菜单栏选择File->Project Structure,在Dependencies选项中选择app,点击+,选择Module dependency,如下图:

请添加图片描述

勾选OpenCV,点击OK,等待同步
请添加图片描述

配置参数,打开app的build.gradle,在android.defaultConfig下面添加如下配置:

externalNativeBuild {
            cmake {
                cppFlags '-std=c++14 -frtti -fexceptions'
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
                arguments "-DOpenCV_DIR=" + project(":opencv480").projectDir + "/native/jni",
                        '-DANDROID_STL=c++_shared'
            }
        }

这时环境就算配置好了。
下面用一个简单和灰度化验证一下。

灰度化

关键代码:

override fun onResume() {
   
        super.onResume()
        if (!OpenCVLoader.initDebug()){
   
            Log.i("main","未找到内部的opencv库")
        }else{
   
            Log.i("main","发现了内置的opencv库");
            doGray()
        }
    }

    private fun doGray(){
   
        val bitmap = BitmapFactory.decodeResource(resources,R.drawable.ldh)
        val bit = bitmap.copy(Bitmap.Config.ARGB_8888,false)
        val src = Mat(bit.height,bit.width,CvType.CV_8UC(3))
        Utils.bitmapToMat(bit,src)
        Imgproc.cvtColor(src,src,Imgproc.COLOR_BGR2GRAY)
        Utils.matToBitmap(src,bitmap)

        binding.sampleImage.setImageBitmap(bitmap)

    }

效果:
请添加图片描述
成功!!

相关推荐

  1. android开发环境步骤

    2024-01-19 06:16:01       11 阅读
  2. OpenCV-环境

    2024-01-19 06:16:01       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 06:16:01       10 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 06:16:01       12 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 06:16:01       11 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 06:16:01       14 阅读

热门阅读

  1. c++使用cmake生成共享库

    2024-01-19 06:16:01       30 阅读
  2. 概率论在激光雷达的目标检测和跟踪中的应用

    2024-01-19 06:16:01       28 阅读
  3. vue+springboot的文件上传处理

    2024-01-19 06:16:01       28 阅读
  4. 【机器学习】DBSCAN算法

    2024-01-19 06:16:01       29 阅读
  5. boost库读写json格式文件

    2024-01-19 06:16:01       31 阅读
  6. 【SpringBoot系列】一键解决跨域问题

    2024-01-19 06:16:01       34 阅读