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下面添加如下配置:

gradle 复制代码
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'
            }
        }

这时环境就算配置好了。

下面用一个简单和灰度化验证一下。

灰度化

关键代码:

kotlin 复制代码
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)

    }

效果:

成功!!

相关推荐
AI即插即用10 小时前
即插即用系列 | MICCAI EM-Net:融合 Mamba 与频域学习的高效 3D 医学图像分割网络
网络·人工智能·深度学习·神经网络·学习·计算机视觉·视觉检测
阿杰学AI10 小时前
AI核心知识53——大语言模型之Structured CoT 超级模版(简洁且通俗易懂版)
人工智能·ai·语言模型·prompt·提示词·pe·structured cot
hellocode_10 小时前
【2025年】GPT-5.2怎么样?Instant/Thinking/Pro 怎么选?如何订阅使用chatgptplus?GPT-5.2使用实例展示
人工智能·gpt·chatgpt
咚咚王者10 小时前
人工智能之数学基础 线性代数:第二章 向量空间
人工智能·线性代数
skywalk816310 小时前
SCNet 双DCU异构卡vllm推理部署DeepSeek-Coder-V2-Lite-Instruct
人工智能·vllm·scnet·deepseek-coder
aesthetician10 小时前
用铜钟听歌,发 SCI !
前端·人工智能·音频
UI设计兰亭妙微10 小时前
告别调度繁琐:北京兰亭妙微拆解货运 APP 的 “轻量高效设计密码”
人工智能·ui设计外包
Mxsoft61910 小时前
采样率设低致频谱混叠!某次谐波分析误判,提高采样率精准定位!
人工智能
AI Chen10 小时前
【Opencv4快速入门】OpenCV中2D汉宁窗实现的数学原理详解
opencv
有痣青年10 小时前
GPT‑5.2 翻车?GDPval 70.9% 的“基准胜利”为何换不来好口碑?
人工智能·openai·ai编程