摘要:是一个基于许可开源发行的跨平台计算机视觉库,可以运行在和操作系统上。后期将进一步完善其学习记录。为了确保工程创建成功,我们可以重新一下工程载入我们在的回调函数中异步初始化,代码很简单,一句话加上一个回调。
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类,同时提供了Python、Ruby、MATLAB等语言的接口,实现了和计算机视觉方面的很多通用算法百度百科 词条:opencv
我用到东西如下:
sdk 我们开发所用的一些工具
注意:我在学习的过程,直接在手机安装会报解析安装包错误,以至于无法安装,那么这里需要连接开发者模式,使用adb进行安装,命令: adb install ****.apk 就可以安装成功了。
导入Module 这个东西就是上图中的java文件夹,选择File--> new --> import Module 选择步骤一图中红色框框圈起来的JAVA文件夹即可,然后在文件栏中就可以看到这个新的Module了,后面的320指的是版本号,每个人可能不一样
导入Module之后我们需要配置一下,在File--->Project Structure菜单中选择该Moudle作为库依赖即可,如下操作
导入库文件注意:在某些情况下,再倒入Module的情况下,会出现报错的情况,这是修改Module的编译版本和目标版本和APP的保持一致,然后重新Sync即可.
在项目中,选app工程,在src/main目录下新建jniLibs文件夹,将上面选中的文件全部复制到其中。
为了确保工程创建成功,我们可以重新reBuild一下工程
@Override
protected void onResume() {
super.onResume();
//载入OpenCv初始化引擎,并载入库,可以看到initAsync,使用的是异步加载
//因此需要提供回调函数
//OpenCVLoader.OPENCV_VERSION_3_2_0指的是版本号,请根据你自己的版本选择
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0, getApplicationContext(), mLoaderCallback);
}
//OpenCV库加载并初始化成功后的回调函数
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
// TODO Auto-generated method stub
switch (status) {
case BaseLoaderCallback.SUCCESS:
Log.e("OpenCv", "成功加载");
break;
default:
super.onManagerConnected(status);
Log.e("OpenCv", "加载失败");
break;
}
}
};
使用OpenCV
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
//从资源中获取图片
srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.psb);
//构建灰度RGB图片
grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565);
//将资源图片转化为Mat类资源
Utils.bitmapToMat(srcBitmap, rgbMat);//convert original bitmap to Mat, R G B.
//将图片灰度化
Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);
//将灰度Mat转换为灰度BitMap资源
Utils.matToBitmap(grayMat, grayBitmap);
//设置显示
((ImageView)findviewById(R.id.img)).setImageBitmap(binaryBitmap);
当然还有更多的使用方法没有再此详细阐述,可以再网上寻找一些资源,Mat是非常强大的一个类,好好玩吧。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/2491.html
摘要:和整合开发环境搭建第一部分搭建环境注以下所有下载的都保存在虚拟机的目录下,也可以到百度网盘下载,地址是,不同版本的配置方式可能有些变化,如果不是很清楚版本问题的话,推荐使用虚拟机中使用的版本配置环境下载,虚拟机中下载的版本是下载之后解压即可 Android NDK和OpenCV整合开发 (1) 环境搭建 ##### 第一部分 搭建环境 [注:以下所有下载的sdk都保存在虚拟机的/h...
摘要:本文主要是介绍了和开发环境的搭建,以及基于示例程序的演示。使用的方式是将作为库,然后调用。比较时使用的都是基本图像处理操作,例如灰度化,高斯模糊,边缘检测等等。 Android NDK 和 OpenCV 整合开发总结(3) 这一节的主要内容是OpenCV在Android NDK开发中的应用,包括下面几个方面的内容: 如何实现Static Initialization从而不需要安装...
摘要:静态还是共享链接上边我们在中,使得,以静态库的方式导入,所以生成的库比较大,达到好几。猜测原因可能是我们在中要编译的是动态库,所以在既有静态库,也有动态库的情况下,需要引入和要编译的库相同类型的。 Android 中写的 JNI 如何调用 OpenCV ? OpenCV 如何配置到 Linux 服务器上? OpenCV for Android 如果想实现图片的高斯模糊,图片比较,人...
摘要:静态还是共享链接上边我们在中,使得,以静态库的方式导入,所以生成的库比较大,达到好几。猜测原因可能是我们在中要编译的是动态库,所以在既有静态库,也有动态库的情况下,需要引入和要编译的库相同类型的。 Android 中写的 JNI 如何调用 OpenCV ? OpenCV 如何配置到 Linux 服务器上? OpenCV for Android 如果想实现图片的高斯模糊,图片比较,人...
摘要:详细的内容可以查看文件,这个文件可能并没有列出在中我们可以从下面的表格中看出它们对语言特性的支持程度从中我们可以看出很不错,所以一般会配置为。将传递到层解析出现了乱码使用自定义的将转换成的函数,内容如下 Android NDK 和 OpenCV 整合开发 (2) Android NDK 这节主要介绍的内容是Android NDK开发的核心内容和开发总结(包括很多常见问题的解决方案),...
阅读 1016·2021-11-22 13:54
阅读 1271·2021-11-22 09:34
阅读 2436·2021-11-22 09:34
阅读 3563·2021-10-13 09:39
阅读 2132·2021-09-26 09:47
阅读 698·2021-09-10 10:50
阅读 3230·2019-08-26 11:52
阅读 3217·2019-08-26 11:50