- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenCV在移动端的图像处理技术
摘 要OpenCV是一个基于(开源)发行的跨平台计算机视觉库,本文主要介绍了opencv的特点、组件结构以及在移动端开发环境Android studio中的环境搭建流程和相关的图像的边缘检测和直线检测的应用。经过在移动端的开发应用,相信opencv技术在移动端的图像处理领域能有很大的作为。
【关键词】OpenCV视觉库 图像处理 Android平台
Opencv全称:Open Source Computer Vision Library,是一个可以移植到其他开发工具中的一个跨平台的图像处理视觉库,它由C++语言编写,主要有C++、C语言接口,为了能在手机等移动端更方便的进行图像处理,我们利用其JAVA接口将opencv视觉库添加到Android的开发工具中,实现了在移动端的图像处理功能。
1 opencv的特点
(1)跨平台,有很好的移植性。Opencv由跨平台的中高层API构成,可以运行在Linux、Windows和Mac OS操作系?y上,该库有C++、C、Java接口,我们运用Java接口就可以将Opencv视觉库移植到Android studio开发工具中。
(2)免费、开源,与耗费很高的商业化工具(比如 MATLAB+Simulink)有很大的区别。
(3)高效、快速、使用方便。Opencv视觉库具有强大的图像运算功能,API中有比较完善的处理函数,能够明显提高开发效率。
2 Opencv在Android studio中的环境搭建流程
2.1 安装Java JDK
需要完成JDK的下载、安装和环境配置的流程,安装完成后,要运行资源管理器输入 Java Version来验证是否安装成功,若显示Java版本信息,则安装成功。
2.2 下载Android Studio开发工具并安装
在Android Studio的中文社区下载最新的Android Studio开发工具(要包含Java SDK),并运行Android Studio,根据安装提示进行安装,并运行开发工具。
2.3 配置Opencv Android SDK
在Opencv官网(http://OpenCV.org)下载Opencv Android SDK并解压。在Android Studio中,新建一工程,点击File并import Module,并选中解压的Opencv SDK文件夹中的Java文件夹,这样就将Opencv视觉库移植到了Android Studio中。然后右键App project,打开open Module Settings中的Depencies,点击Module Dependency,添加OpencvLibrary,这样就完成了深层配置。最后把Opencv SDK文件夹中的native文件夹中的libs的4个文件夹复制到所建好的工作空间中的project中的libs中。
3 图像的灰度处理和像素取反处理的应用举例
本文中是用的移动端为魅族MX3,Android版本号为5.0.1。
3.1 灰度处理
使用OpenCv将一幅图像转换为灰度图像在实际应用中也不少,转换为灰度图像比较简单,关键函数: cvCvtColor:cvCvtColor(IplImage* src, IplImage* dst, CV_BRG2GRAY)。值得注意的是:最后一个参数为 CV_BRG2GRAY ,表示将BRG图片(彩色图片)转换为灰度图片(黑白),参数src、dst必须事先分配好内存空间,使用完之后必须要释放空间。
3.2 像素操作―取反
OpenCV中图像取反是将图像中的像素点变为原来像素点的反色。例如,如果一副灰度图像的每个像素值由2^8=256个,假设点i点像素值为brga[i] ,则取反后的像素值为 255- brga[i]oxff。
关键代码为:
int cnum = src.channels();
byte[] bgra = new byte[cnum];
for (int i = 0;icnum;i++){
bgra[i] = (byte) (255 - bgra[i]0xff);}
然后运用matToBitmap函数将Mat格式的图像转换成Bitmap的图像,并显示在android手机移动端。
经过编写代码并运行得到的处理结果如图1所示。
4 结束语
OpenCV视觉库是一套简单易用且完整的计算机视觉框架,帮助开发人员完成大量的底层工作,减少了工作量,更有效提高了设计出复杂计算机图形处理的能力。并且我们将OpenCV移植到Android操
文档评论(0)