基于OpenCV在移动端的图像处理技术

2017-06-03 16:30刘贤辉
电子技术与软件工程 2017年9期
关键词:Android平台图像处理

摘 要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操作系統上,该库有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;i

bgra[i] = (byte) (255 - bgra[i]&0xff);}

然后运用matToBitmap函数将Mat格式的图像转换成Bitmap的图像,并显示在android手机移动端。

经过编写代码并运行得到的处理结果如图1所示。

4 结束语

OpenCV视觉库是一套简单易用且完整的计算机视觉框架,帮助开发人员完成大量的底层工作,减少了工作量,更有效提高了设计出复杂计算机图形处理的能力。并且我们将OpenCV移植到Android操作系统中去,也是图像处理领域的一大进步。我们相信,在OpenCVForAndroid的应用不断拓展中,众多图像处理领域会有广泛的前景。

参考文献

[1]陈雪娇.基于Open CV的计算机视觉技术研究[J].电脑知识与技术,2015(30).

[2]张家怡.图像识别的技术现状和发展趋势[J].电脑知识与技术,2010(21).

[3]黎松,平西建,丁益洪.开放源代码的计算机视觉类库Open CV的应用[J].计算机应用与软件,2005.22(08).

[4]何鹏,王连鹏,楚艳红.基于Open CV 的机器视觉在智能手机中的应用[J].计算机工程与设计,2011(10).

[5]王福斌,李迎燕,刘杰,陈至坤.基于OpenCV的机器视觉图像处理技术实现[J].机械与电子,2010(06).

作者简介

刘贤辉(1992-),男,山东省青岛市人。现为青岛市山东科技大学在读研究生。主要研究方向为移动端的图像处理研究

作者单位

山东省科技大学 山东省青岛市 266590

猜你喜欢
Android平台图像处理
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
Bayesian-MCMC算法在计算机图像处理中的实践
改进压缩感知算法的图像处理仿真研究
基于Android平台软件开发技术研究
基于图像处理的定位器坡度计算
Photo Shop通道在图像处理中的应用