Android Studio配置和使用OpenCV3.x,不需要OpencvManager

转载声明,本文转自CSDN:http://blog.csdn.net/qq_22033759/article/details/51156121

ps:本来在贴吧上有人问,想自己写的,但时间有限,当初自己也是学习了这个CSDN博文后配置的,一为了收藏,二为了让更多朋友搜索到,就转载一下。。。

以下为转载原文:

 

我所使用的opencv版本为3.1,Android Studio版本为2.0

先从opencv官网下载对应的版本的安卓的opencv的sdk 解压出来路径不要有中文

然后在Android Studio里创建一个安卓项目,在根目录创建一个文件夹,命名为libraries
这里写图片描述
然后把sdk结业目录下的 sdk\Java文件夹复制到libraries文件夹内,重命名为opencv
这里写图片描述
接着在该opencv目录下创建一个build.gradle,内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
apply plugin: 'com.android.library'
 
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
    }
}
 
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
 
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 2480
        versionName "3.1.0"
    }
 
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            aidl.srcDirs = ['src']
        }
    }
}

 

 

需要依照需求修改对应的sdk版本

然后在修改下项目的settings.gradle ,添加一行

1
include ':libraries:opencv'

要选择Sync Now

然后右键项目名,选择Open Module Settings,选择app然后点Dependencies,再点击加号,选第三个,把opencv添加进去
添加好后如图:
这里写图片描述

接着在/app/src/main/下创建一个文件夹叫jniLibs
这里写图片描述
把上图目录下的所有文件夹都复制到jniLibs中去。
到这就算是配置完全了。
接下来就是使用。

一定要先添加static{ System.loadLibrary(“opencv_java3”); }

我测试的代码:(界面有一个ImageView和一个Button)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.example.chengk.opencvexamples;
 
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
 
import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.imgproc.Imgproc;
 
public class MainActivity extends AppCompatActivity {
    static{ System.loadLibrary("opencv_java3"); }
    int i=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imageView = (ImageView)findViewById(R.id.imageView);
        final Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.aa1)).getBitmap();
        imageView.setImageBitmap(bitmap);
 
 
        final Button button2 = (Button)findViewById(R.id.button);
        button2.setText("转换");
        button2.setOnClickListener(new Button.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                i++;
                Mat rgbMat = new Mat();
                Mat grayMat = new Mat();
                //获取lena彩色图像所对应的像素数据
                Utils.bitmapToMat(bitmap, rgbMat);
                //将彩色图像数据转换为灰度图像数据并存储到grayMat中
                Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);
                //创建一个灰度图像
                 Bitmap grayBmp = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.RGB_565);
                //将矩阵grayMat转换为灰度图像
                Utils.matToBitmap(grayMat, grayBmp);
                ImageView imageView = (ImageView)findViewById(R.id.imageView);
                if(i%2==1)
                    imageView.setImageBitmap(grayBmp);
                else
                    imageView.setImageBitmap(bitmap);
            }
 
        });
    }
}

 

运行效果图:
点击按钮前
这里写图片描述
点击按钮后
这里写图片描述

这么做确实是可行的,但空间占用太大,我这个程序占用空间将近50M,还在寻找其他更好的办法,找到了继续更新。

posted @   jcjks  阅读(2425)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
历史上的今天:
2008-11-24 ADOBE CS3 序列号
2007-11-24 音乐欣赏之歌词-《爱情漫游》
点击右上角即可分享
微信分享提示