OpenCV3.4.1快速集成到Android studio中,10分钟搞定

OpenCV3.4.1快速集成到Android studio中,10分钟搞定

转载 https://blog.csdn.net/yu540135101/article/details/82593860

1.下载地址(官网)

https://www.opencv.org/opencv-3-4-1.html
这里写图片描述


2.导入Module

这里写图片描述
这里写图片描述


3.删除以下代码

这里写图片描述

在OpenCV模块的清单文件中删除以下代码

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" />

4.配置OpenCVLibrary341的SDK版本

这里写图片描述

在build.gradle(Module:OpenCVLibrary341)中,修改以下属性
改为和build.gradle(Module:app)中的值一样

1compileSdkVersion 2minSdkVersion 3targetSdkVersion

5.复制armeabi-v7a文件夹到项目的libs目录下(注意要有文件夹)

复制成功后,也可以删除掉其他的.a文件,只保留libopencv_java3.so
这里写图片描述


6.添加依赖

1dependencies { 2 ... 3 4 //让app包,与新添加的这个OpenCV库关联 5 implementation project(':openCVLibrary341') 6 //将打好jar包,添加到依赖中 7 implementation fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') 8 } 9 10//以下很重要 11//将添加的.so文件,打包成jar 12task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') { 13 destinationDir file("$buildDir/native-libs") 14 baseName 'native-libs' 15 from fileTree(dir: 'libs', include: '**/*.so') 16 into 'lib/' 17} 18tasks.withType(JavaCompile) { 19 compileTask -> compileTask.dependsOn(nativeLibsToJar) 20}

7.初始化,图像转成灰色测试

这里写图片描述
这里写图片描述

1import android.graphics.Bitmap; 2import android.graphics.BitmapFactory; 3import android.os.Bundle; 4import android.support.v7.app.AppCompatActivity; 5import android.view.View; 6import android.widget.Button; 7import android.widget.ImageView; 8import android.widget.Toast; 9 10import org.opencv.android.OpenCVLoader; 11import org.opencv.android.Utils; 12import org.opencv.core.Mat; 13import org.opencv.imgproc.Imgproc; 14 15public class MainActivity extends AppCompatActivity { 16 17 private ImageView imageView; 18 private Button button; 19 20 @Override 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_main); 24 initView(); 25 //初始化 26 if (OpenCVLoader.initDebug()) { 27 Toast.makeText(this, "OpenCVLoader初始化成功", Toast.LENGTH_SHORT).show(); 28 } 29 30 //测试灰度 31 button.setOnClickListener(new View.OnClickListener() { 32 @Override 33 public void onClick(View v) { 34 convert2Grey(); 35 } 36 }); 37 38 39 } 40 41 private void convert2Grey() { 42 Mat src = new Mat();//Mat是OpenCV的一种图像格式 43 Mat temp = new Mat(); 44 Mat dst = new Mat(); 45 Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.mipmap.bd_logo1); 46 Utils.bitmapToMat(bitmap, src); 47 Imgproc.cvtColor(src, temp, Imgproc.COLOR_RGB2BGR); 48 Imgproc.cvtColor(temp, dst, Imgproc.COLOR_BGR2GRAY); 49 Utils.matToBitmap(dst, bitmap); 50 imageView.setImageBitmap(bitmap); 51 // 52 src.release(); 53 temp.release(); 54 dst.release(); 55 } 56 57 private void initView() { 58 imageView = (ImageView) findViewById(R.id.imageView); 59 button = (Button) findViewById(R.id.button); 60 } 61}

Demo下载

https://download.csdn.net/download/yu540135101/10659712

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )