在Android 上运行 openCV ,并做灰度变化的一个例子

OpenCVImageProcessing
1. 导入Opencv的 androrid SDK
灰度算法 OpenCVImageProcessing

导入opencv Jar包,配置OpenCVLibrary340 的 bulid.gradle , 配置Module:app 的 build.gradle , 在依赖里添加 implementation fileTree(dir: “$buildDir/native-libs”, include: ‘native-libs.jar’)

在Gradle Scripts 里修改 dependencies

?

dependencies {
implementation fileTree(include: [‘*.jar‘], dir: ‘libs‘)
implementation fileTree(dir: "$buildDir/native-libs", include: ‘native-libs.jar‘)
implementation ‘com.android.support:appcompat-v7:28.0.0‘
implementation ‘com.android.support.constraint:constraint-layout:1.1.3‘
testImplementation ‘junit:junit:4.12‘
androidTestImplementation ‘com.android.support.test:runner:1.0.2‘
androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2‘
implementation project(‘:openCVLibrary340‘)
}

task nativeLibsToJar(type: Jar, description: ‘create a jar archive of the native libs‘) {
destinationDir file("$buildDir/native-libs")
baseName ‘native-libs‘
from fileTree(dir: ‘libs‘, include: ‘**/*.so‘)
into ‘lib/‘
}

tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

2. 灰度算法

@Override
public void onClick(View v) {
convert2Gray();
}

private void convert2Gray() {
Mat src = new Mat();
Mat temp = new Mat();
Mat dst = new Mat();
Bitmap image = BitmapFactory.decodeResource(this.getResources(),R.drawable.tantuo);
Utils.bitmapToMat(image,src);
Imgproc.cvtColor(src, temp , Imgproc.COLOR_RGBA2BGR);
Log.i( "CV", "image type:" + (temp.type() == CvType.CV_8UC3));
Imgproc.cvtColor(temp, dst, Imgproc.COLOR_BGR2GRAY);
Utils.matToBitmap(dst,image);
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(image);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
点击按钮,Imgproc.cvtColor(src, temp , Imgproc.COLOR_RGBA2BGR) 执行结果如下:
(现在总是加班坐着胖得厉害,两年前的时候经常帅得睡不着觉的)

https://img-blog.csdnimg.cn/2019052117390814.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzczNDk4OA==,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/20190521173707608.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzczNDk4OA==,size_16,color_FFFFFF,t_70
---------------------

原文地址:https://www.cnblogs.com/ly570/p/10970814.html

时间: 2024-11-25 16:56:56

在Android 上运行 openCV ,并做灰度变化的一个例子的相关文章

在 android 上运行 python 的方法

在android上运行python脚本,或者在android上使用python交互界面,对熟悉python的研究或开发人员来说,是一件很有吸引力的事情,因为python脚本真是非常高效,另外,有很多非常好的库 android官方目前没有支持在android设备运行python,但是网上有一些项目组做了这个事情:http://geeknizer.com/install-run-python-apps-scripts-on-android/  这个链接就提供好几个项目,我稍微尝试了  Kivy  这

系列篇|编译可在Android上运行的依赖库(一):glib库

前言 这是系列文章,它们由<编译可在Android上运行的glib库>及其他4篇文章组成,这4篇文章在“编译依赖库”一节中列出.由于glib库依赖于其他第三方库,所以需要先将依赖的第三方库交叉编译到Android平台上才能成功的编译glib库,系列文章中除<编译可在Android上运行的glib库>外的其他交叉编译文章均是介绍如何对glib依赖库进行交叉编译.以上,所以叫系列文章,因为这些文章完整的介绍了如何编译可在Android上运行的glib库. 文章价值 这些文章的核心价值是

编译可在Android上运行的qemu user mode

前言 本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码. 下文中的”NDK”若无特殊说明均指”Android NDK”. 下文中”$NDK”表示的是NDK的根目录. 步骤 1. 下载并安装Android NDK 下载并安装Android NDK的过程在这里不做介绍. 2. 下载qemu 3. 设置NDK工具的环境变量 为交叉编译设置Android NDK环境变量:NDK.SYSROOT 4. 编译依赖库 glib 编译可在Androi

在Android上运行Java和C程序

在linux上运行java程序,直接用javac编译,再用java启动虚拟机运行就行了.但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的.下面介绍Android上运行Hello world! 一.单个java文件编译运行 1.在Ubuntu虚拟机上将Hello.java编译成Hello.class文件 2.在Ubuntu上的Android编译环境下生成Hello.jar文件 # dx --dex --output=Hello.jar Hello.class 注意这里的d

Unity3D之AssetBundle学习:Android上运行笔记

路径统一 在Android上加载StreamingAssets文件夹下的AssetBundle文件,首先需要对加载地址进行处理,注意PC.Android和IOS的地址不一致需要针对不同的平台不同的处理,通用代码如下: 1 //统一不同平台下 StreamingAssets 路径 2 public static readonly string STREAMING_ASSETS_PATH = 3 #if UNITY_ANDROID 4 "jar:file:///" + Applicatio

非Root权限的Android上运行可执行文件

使用 NDK 编译可执行文件,即 Android.mk 文件应该是编译 target 应该是 BUILD_EXECUTABLE include $(BUILD_EXECUTABLE) 假设,编出的目标为 helloworld 1. 将 helloworld push 到手机的 /sdcard 目录下 2. 执行 adb shell 3. 将 /sdcard/helloworld 拷贝到 /data/local/tmp 4. 进入到 /data/local/tmp 目录下,并执行 chmod 77

Android学习——在Android中使用OpenCV的第一个程序

刚开始学习Android,由于之前比较熟悉OpenCV,于是就想先在Android上运行OpenCV试试 =================================================================================== 1.环境配置 JDK Eclipse ADT CDT Android SDK Android NDK cygwin OpenCV for Android 2.4.9 这部分网上很多,我就不再赘述了,可以参考:http://bl

Android ART运行时与Dalvik虚拟机

这几天在做一个项目时需要在Android中使用OSGi框架(Apache Felix),于是在一个android 4.4.2 版本系统的某品牌的平板上实验. 实验内容很简单:把felix包里的felix.jar包和一些bundles的jar包用android sdk里的dx及aapt工具转化为包含dex字节码的jar 包.这样使这些jar包能在Android上跑起来.(因为Android上使用的是在Dalvik虚拟机而不是标准的java虚拟机,所以“原生”的 jar包不能直接在Android上跑

JavaFX打包到Android上

让JavaFX运行到移动平台一直是社区努力完成的事. 当然,目前已经可以让JavaFX运行到Android和IOS平台了,下面我们来看看如何打包自己的JavaFX项目到Android平台. 首先下载下面这个示例: http://pan.baidu.com/s/1bnwIYrP 这个示例是我从打包官方示例的例子里修改而来,用于打包一个简单的JavaFX程序. 示例结构如下: 由目录结构可以看到,示例是采用gradle来构建的.gradle也是国外非常火的自动化构建工具. 在第一次打包的时候,需要双