openCV 计算机视觉库

怎么样在Android中使用它呢,我用的是Androidstudio

第一步下载OpenCV Android SDK
官网有时候可能不太好用
可以去这里下载https://github.com/opencv/opencv/releases
OpenCVAndroidSDK 并不是纯java语言的计算机视觉库,而是基于OpenCV c++ 本地代码、通过java语言接口定义、基于JNI技术实现调用c++本地方法的SDK开发包。

SDK目录下面包含的文件目录

etc目录里面有两个文件夹,里面都是XML文件,是训练好的HAAR与LBP级联分级器数据
java目录里面是 Android SDK 相关文件
native 里面是基于c/c++编译好的OpenCV Android平台支持的本地库文件

开始搭建环境
在搭建开发环境之前,首先需要下载和安装几个软件开发包
(1)OpenCV Android SDK
(2)JDK8
(3)Android Studio
(4)Android SDK与NDK开发包

1.搭建Android项目 [File] ->[New Project…] …
2.导入OpenCV Android SDK 依赖项
选择[File] -> [New] ->[Import Model…] 选择解压好的SDK目录中的 sdk\java

[Finish] 之后完成导入。然后在选择[File] -> [Project Structure…]
打开依赖对话框,选择最右侧的[+] 按钮

3.复制本地依赖项 OpenCV 库文件
把sdk目录下native\libs下面的所有文件与文件夹全部复制到jinLibs(自己建的)


4.修改Gradle 脚本与编译

将openCV的gradle脚本里面的改为和app里面一样

代码测试

package com.example.opencvdemo;import androidx.appcompat.app.AppCompatActivity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import org.opencv.android.OpenCVLoader;import org.opencv.android.Utils;import org.opencv.core.Mat;import org.opencv.imgproc.Imgproc;public class MainActivity extends AppCompatActivity{    private static final String CV_TAG = "openCV";    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initLoadOpenCV();        Button button = (Button) findViewById(R.id.process_btn);        button.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v) {                Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.im_ck2);                Mat src = new Mat();                Mat dst = new Mat();                Utils.bitmapToMat(bitmap,src);                Imgproc.cvtColor(src,dst, Imgproc.COLOR_BGRA2GRAY);                Utils.matToBitmap(dst,bitmap);                ImageView iv = (ImageView) findViewById(R.id.sample_img);                iv.setImageBitmap(bitmap);                src.release();                dst.release();            }        });    }    //加载openCV本地库    private void initLoadOpenCV()    {        boolean success = OpenCVLoader.initDebug();        if (success)        {            System.out.println("loading success");            Log.d("test", "initLoadOpenCVLibs:OpenCV加载成功!");        }        else        {            System.out.println("loading failed");            Log.d("test", "initLoadOpenCVLibs:OpenCV加载失败!");        }    }}
<?xml version="1.0" encoding="utf-8"?>    

原图

灰度

测试成功

更多相关文章

  1. 安卓学习第一天
  2. 新建一个 Android(安卓)项目
  3. Android(安卓)Studio 安装教程以及gradle配置
  4. Cocos2d-x开发移植到安卓平台横竖屏设置及相关
  5. 把文件存放在SDCard
  6. android 命令行打包
  7. Your project contains error(s)... 新创建的android项目
  8. android Log4j学习笔记
  9. Android(安卓)SDK无法更新、谷歌无法打开问题的解决

随机推荐

  1. 使用AXMLPrinter2,smali,baksmali来实现A
  2. 键盘按钮效果
  3. Android(安卓)JNI开发基础
  4. Android中BaseAdapter原理
  5. android vlc 编译流程
  6. android 多点触摸实现图片缩放
  7. Android7.0中文文档(API)-- AlphabetIndexe
  8. android 单元测试 radio group
  9. Android Init Language(android init.rc语
  10. 制作android/cordova splash screen