(原创)在Android(安卓)上运行 openCV ,并做灰度变化的一个例子
16lz
2021-01-25
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)}
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);
点击按钮,Imgproc.cvtColor(src, temp , Imgproc.COLOR_RGBA2BGR) 执行结果如下:
更多相关文章
- Android应用之基本的组件(一)
- android实现分享
- Android仿硅谷商城实现购物车实例代码
- android滑动按钮事件
- Android(安卓)/ Java ------ Sha1 and Md5
- Android(安卓)动态获取权限(6.0 , 7.0)
- Android(安卓)Device Monitor结构和用法
- android PickerView自定义实现
- java算法之去重查找重复元素