基于FTP服务器的Android设备与Matlab的信息交互

  • 投稿蔡的
  • 更新时间2015-09-16
  • 阅读量840次
  • 评分4
  • 26
  • 0

胡博 HU Bo;胡详权 HU Xiang-quan;王少乐 WANG Shao-le

(石家庄铁道大学电气与电子工程学院,石家庄 050043)

摘要: 由于Android系统和Matlab有各自的优点和不足,提出一种通过FTP服务器,利用基于Android系统的嵌入式设备与Matlab平台进行信息交互的方法,这样可充分发挥Android和Matlab各自的优势,与此同时,利用FTP服务器安全,传输速度快等优点,大大提高了Android项目开发效率。为此,做相应研究并进行相关论述。

教育期刊网 http://www.jyqkw.com
关键词 : FTP服务器;Android;Matlab;Socket通信

中图分类号:TP368.5 文献标识码:A 文章编号:1006-4311(2015)23-0057-03

基金项目:河北省大学生创新创业训练计划项目资助,项目编号(201410107044)。

作者简介:胡博(1991-),男,安徽宿州人,石家庄铁道大学电气与电子工程学院本科生;胡详权(1992-),男,江西南昌人,石家庄铁道大学电气与电子工程学院本科生;王少乐(1994-),男,河北邯郸人,石家庄铁道大学电气与电子工程学院本科生。

0 引言

当前智能手机产业发展迅速,以Android系统为基础的智能手机以其特有的优势而占据着市场大量的系统份额,在越来越普及的同时,也不断地改变着人们的生活。以Android系统为基础的手机在图像及数据采集方面有着简单,方便等其他系统不可比拟的优势,然而与此同时,其在数据和图像处理方面的表现不甚理想。因而,进一步完善Android系统大数据的处理也显得尤为重要。

在进行复杂矩阵及数据运算时,Matlab以其独到的优势脱颖而出。Matlab是近几年来国内外使用最为广泛的优秀科技软件之一。其语法结构简单,具有极强的数值计算、数据分析、图形绘制及图像处理等功能,具有高质量的图形可视化效果和强大的界面设计能力,因而在数字图像处理中有着极大的优势。

为此,提出一种通过FTP服务器进行基于Android设备和Matlab交互[1]的一种方法,在Android设备上部署一个FTP服务器,负责提供服务,并与PC客户端进行通信。与此同时,Matlab利用其数据及图形处理模块对Android子线程上传的图片及数据进行分析处理并将结果保存在PC客户端下,从而完成Android和Matlab的数据交互。

1 系统整体方案

系统使用的开发环境和开发工具主要有JDK(32位,jdk-8u40-windows-i586.exe)、集成ADT及CDT插件的Eclipse、AndroidNDK、Android SDK和Matlab。

系统的整体思路是在一个局域网中,Android手机上部署FTP服务器,负责提供服务并与PC客户端通信。Android手机作为服务器端,PC作为客户端,可调用Matlab功能模块对文件进行操作,Android设备和Matlab之间通过Socket进行通信。以此,采用客户/服务器端即C/S架构的系统。

Android端作为服务器与PC客户端建立Socket通信,在同一个局域网内,设定一个网关,设备和网关相连,当基于Android的嵌入式设备进入空间后,手机端获取网络,获取IP地址,从而与PC客户端进行信息传输。系统采用流式Socket通信[2],且基于TCP/IP协议,稳定传输速度快。

Matlab已新增文件I/O函数,支持读取任意格式文本数据文件,且具有压缩功能MAT文件格式,支持快速数据,文件I/O能力。利用Matlab图像处理模块对图像进行相应处理后将结果反馈,结果保存在PC客户端指定文件夹下。

2 具体方法

2.1 基于Android的嵌入式设备FTP服务器

Android端完成对图像及数据文件的获取和保存,这里在Android平台下完成对Camera程序的开发与设计,将获得的图片进行保存以及通过Socket通信协议与PC客户端进行信息交互。

①利用Android设备完成对相关图像及数据的采集并保存,可放于指定文件夹下。

②用户设置FTP服务器的账号和密码,端口号默认为2121,在信息传输结构中,网关[3]连接内部和外部网络,当用户进入相应空间后,手机端连接无线网络,获取IP地址,运行FTP服务,实现Socket连接。

③FTP协议采用C/S模式,启用FTP服务器建立链接后,通过无线网络向PC主机发出传输命令,同时通过开启线程监听相关命令。这里FTP协议采用C/S模式,与其他C/S网络通信协议有很大区别,要有两个Socket连接同时工作,一个用于进行控制链接[4],一个用于进行数据链接。控制链接始终等待客户端和服务器之间的通信,数据链接用来进行数据传输。

④最终可将保存的图像及文件传输至PC客户端,同时可以接收PC客户端经Matlab处理的图像及数据文件。

2.2 PC客户端

文章通过Socket通信,采用多个子线程连接方式,获取Android手机端的相关文件,并通过Matlab及相关组件完成对图片数据的分析和处理。

①采用多个子线程实现图像及数据文件的传输,在获取相关文件后启用Matlab。

②调用Matlab的Simulink组件进行照片处理,在读取图像后,对图像进行处理,也可根据图像特征应用不同特征提取算法及OCR文字识别等。

③通过文件读写的方式,将Matlab完成图像处理或数据分析后的结果保存在PC客户端指定文件夹下,等待客户端和FTP服务器的下一步响应。

④图像的处理。

1)增强图像的对比度。

程序中用到的模块有Image From File、三个Contrast Adjustment以及两个Video Viewer。Contrast Adjustment的作用是设置照片的对比度,双击模块,设置参数“Adjust pixel values from”为第三项。Image From File设置“Image signal”为“separate color signals”,输出信号为RGB3通道信号。Video Viewer设置输入方式也为“separate color signals”。程序如图4所示。

2)Gamma校正。

Gamma校正使各图像RGB各通道的灰阶一致,照片会变得更清晰。程序中用到的模块有Image From File、三个Gamma Correction以及两个Video Viewer。Image From File读取照片,Gamma Correction模块用来做Gamma校正,参数默认值,程序如图5所示。

为了提高程序响应速度,多处使用子线程,这样在没有处理任务时将机器时间让给其他任务,也可以随时停止某个任务。在提高了程序运行效率的同时,减少了服务器的响应时间,提高了CPU和网络I/O利用率。

3 实验结果

如图6增强图像的对比度,图片由Image From File模块读入,分成三个通道输出,在这里输出分为两路,一路通过Video Viewer7显示,作为原始图片,如图6左所示;另一路则分别通过Contrast Adjustment模块做对比度的处理,最终由Video Viewer2显示,如图6右。

如图7 图像的Gamma校正,图片由Image From File 1模块读入, RGB3个通道单独输出,对每个通道都进行Gamma校正,图6右为由Video Viewer 1输出校正后的照片,左为Video Viewer2输出校正前的照片。由以上可见,校正效果明显。

本实验通过基于Android的嵌入式设备实现图像及数据文件的获取,通过Android设备上FTP服务器的设立,进行文件的传输,PC客户端得到文件并通过调用Matlab实现对图像等文件的处理,并将处理结果保存在服务器端指定文件夹下,再通过开放子线程的方式,实现文件上传。实验利用了Matlab强大的图形处理模块,实现了对所获图片复杂处理及相关反馈,实验结果证明了此种方法的可行性。

4 结束语

文章通过提出一种基于Android的嵌入式设备和Matlab通过FTP服务器建立连接并实现交互的方法,可使Android和Matlab进行优势互补,同时利用FTP服务器简单,稳定且易于建立等特点提高了Android项目的开发效率,并可提高基于Android的设备的系统性能。另外,还可以将此应用于一些关键场所或不便于到达的场所,已实现信息的交互和保障相关人身及设备的安全。

教育期刊网 http://www.jyqkw.com
参考文献

[1]陈国良,吴允平.Android/Matlab数据交互中间件架构设计[J].计算机与现代化,2014,10(10):52-54.

[2]罗亚非.基于TCP的Socket的多线程通信[J].电脑知识与技术,2009,5(3):563-565.

[3]耿东久.基于Android手机的远程访问和控制系统[J].计算机应用,2011,31(2):559-561.

[4]郝玉锴.嵌入式FTP服务器的设计与实现[J].现代电子技术,2013,36(14):55-56.