基于移动平台的园林树木辅助查询识别系统设计与实现

2018-11-01 03:15:52袁春东王雷刘占林
城市勘测 2018年5期
关键词:图库名称树种

袁春东,王雷,刘占林

(南通市测绘院有限公司,江苏 南通 226006)

1 引 言

近年来,各地为加强城市园林建设的管理,纷纷开展城市园林绿化调查,承接和实施此类项目的多为测绘单位。通过多个调查项目的实施,我们发现一般的地级市城区园林树木种类能达到300多种,县级城区园林树木种类也近200种[1]。而测绘人员是园林树木识别的“门外汉”,如何让项目外业调查人员迅速掌握园林树木识别方法和准确辨别树木名称成为保障项目实施质量的关键。

外业调查是园林绿化调查的主体,而树种是重要的调查因子和外业调查的基础。能够在调查现场实时、准确、快速地查询到树木学名,是外业调查中亟待解决的问题。调查人员在野外树种识别过程中,特别希望利用一个便携的树种识别工具,帮助他们以尽量少的树木形态特征输入来快速准确地检索树种。为此我们设计并开发了基于安卓手机和平板电脑等移动平台的园林树木辅助查询识别系统,辅助外业调查人员进行现场树木名称查询和种类识别,并作为他们学习园林树木识别的辅助工具。

2 系统方案设计

2.1 设计思路

通过归纳总结园林树木的生物学特征[2],建立树木形态特征属性集和各树种形态特征的属性数据集,收集整理园林树木的图片和文字信息,建立园林树木的信息库;基于安卓手机和平板电脑等移动平台开发系统,在系统内选择输入树木的形态特征属性,与信息库内各树种形态特征的属性数据集进行匹配检索,查找出符合条件的树木名称,通过调阅树木的图片或文字介绍,现场与调查树木进行比对,辅助准确识别树木种类。系统开发流程如图1所示。

图1 系统开发流程图

2.2 平台选择

Android操作系统因其功能强大、使用方便、价格便宜且是开源性操作系统,已经成为世界上最受欢迎的智能手机平台,因此本系统采用Android平台开发。Android软件平台主要由五部分构成,如图2所示,它们分别是:关键应用程序、应用程序框架和组件、C/C++函数库、Java程序运行环境、优化了的Linux内核,为移动端打造真正开放和完整的移动软件,主要使用于智能手机和平板电脑等移动设备。Android平台具有良好的开发性,易于实现数据存储、数据查询和数据展现等功能。数据库采用Android内置的轻量级关系型数据库SQLite。它占用的资源非常少,所以很多嵌入式设备都是用它来存储数据。

Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们开发工具的首选。

图2 Android系统架构图

2.3 系统功能

如图3所示,主要包括按树木名称查询、按树木形态查询和按树木科属查询以及按树木名称、树木形态组合查询等,可以查看树木的各部位图片信息、文字信息以及有哪些相似树种和同属树种。

图3 系统功能图

3 基础数据库设计

3.1 整理园林树木识别图库

作为园林树木辅助查询识别系统的基础数据,需先整理园林树木识别图库,图库采用分级文件夹的方式对园林树木图片进行存放。在名为“园林树木识别图库”的一级目录下,按照树木的“科名+属名”方法建立二级子目录,如“蔷薇科桃属”;在二级子目录下按照树木中文学名建立三级目录,如“榆叶梅”。在三级目录下按照树木的“株态、树干、枝、叶、花、果”命名并顺序存放相应图片,要求图片清晰并能准确反映树木形态和特征,如可能的情况下再存放一些四季形态的图片。

3.2 编制园林树木识别特征表

为系统查询和识别需要,还需编制园林树木识别特征表,采用Excel表格式,分Sheet1表和Sheet2表。Shee1表里存放的是树木的形态特征术语,在综合考虑各查询要素全面性和系统内查询条件的下级展开需要后,我们将树木部位分为形态、树形、树皮、树皮色、枝干、小枝、叶序、叶脉、叶形、叶先端、叶缘、叶片、复叶、花、花期、果16类,与每一类配套的形态术语为描述树木形态的术语,考虑到外业调查人员多为非园艺专业人员,术语为专业叫法和通俗叫法的组合。如“叶序”的形态术语包括对生、互生、近对生、交互对生、轮生、螺旋状生、簇生、轮状簇生、复叶对生、复叶互生、2针一束、3针一束、5针一束、多针一束,“果”的形态术语包括干果、荚果、翅果、球形果、开口果、刺球果、念珠果、绒毛果、坛状果、灯笼果、小黑果、小绿果、小红果、小黄果、小灰果、小白果。如表1所示。

形态术语表 表1

续表1

Sheet2表里存放的是树木的名称、代码、主要识别特征、科、属、别称、相似树种、详细介绍,“主要识别特征”栏内放置Sheet1表内规定的形态术语。如表2所示:

树木基本信息表 表2

4 系统功能实现

系统采用Android内置的轻量级关系型数据库SQLite作为数据库,系统运行需要基础数据的支持,即园林树木识别图库和园林树木识别特征表,需要将它们放在系统内置存储卡上,通过编写的程序将园林树木识别特征表导入到对应的数据库表中,这样就实现了系统与数据库的连接。通过用户输入的树木名称(代码)、树木形态及科属,去后台通过模糊查询的方式获取对应的树木名称,再去园林树木识别图库中找到该树木名称的图片。因为考虑到图库文件占用的内存存储空间比较大,Android平台中应用程序对图片的大小也有限制,所以我们对图库文件进行了等比例等质量压缩,确保图片清晰,不模糊,外观不变形。算法如下。

public static Bitmap getimage(String srcPath,int width,int height) {

BitmapFactory.Options newOpts=new BitmapFactory.Options();

newOpts.inJustDecodeBounds=true;

Bitmap bitmap=BitmapFactory.decodeFile(srcPath,newOpts);newOpts.inJustDecodeBounds=false;

int w=newOpts.outWidth;

int h=newOpts.outHeight;

float hh=height;

float ww=width;

int be=1;

if (w > h && w > ww) {

be=(int) (newOpts.outWidth / ww);

} else if (w < h && h > hh) {

be=(int) (newOpts.outHeight / hh);

为了有效的防御和减轻气象灾害,保障人民生命财产安全,国家各级部门不断制定各类防范措施,取得了一定的效果,对于社会发展起到一定的推动作用。但由于影响预警机制建立和有效运行的因素众多,因而在实际的工作中,仍存在一定的问题,制约了农业气象预警的发展。

}

if (be <= 0)

be=1;

newOpts.inSampleSize=be;

bitmap=BitmapFactory.decodeFile(srcPath,newOpts);

return compressImage(bitmap);

}

ByteArrayOutputStream baos=new ByteArrayOutputStream();

image.compress(Bitmap.CompressFormat.JPEG,100,baos);

int options=100;

while (baos.toByteArray().length / 1024>100) {

baos.reset();

options -= 10;

image.compress(Bitmap.CompressFormat.JPEG,options,baos);

}

ByteArrayInputStream isBm=new ByteArrayInputStream(baos.toByteArray());

Bitmap bitmap=BitmapFactory.decodeStream(isBm,null,null);

return bitmap;

}

其中树木图片展示用到了ViewPager,它是Android扩展包v4包中的类,可以用来实现屏幕间的自由切换,通过反复浏览树木各部位图片信息大大加深了用户对该树木品种的记忆,也为日后识别该树木品种打下了基础。

为了让系统界面简洁和易于操作,我们对系统界面进行了精心设计。系统的三种查询方式为按树木名称、按树木形态、按树木科属,其中按树木名称和树木形态可组合查询,点击【全部】则将图库中全部树木名称均显示出来。如图4所示。

图4 系统主界面

4.1 按树木名称查询

勾选“按树木名称查询”后,通过输入树木名称、别称或代码进行模糊查询。系统先检索园林树木识别特征表,检索到相关信息并读取树木名称,再根据树木名称检索图库中的三级目录名称来调取图片,并将检索到的信息按树木名称依次显示在系统界面下方列表,同时显示代码、类型(灌木、乔木还是水生植物等)、科属。如图5所示。

图5 树木名称查询

点击列表某一行,可以查看相关树种信息,默认选择是图库,可自己选择其他查看项,如详细介绍、相似树种、同属树种。查看图库时,可滑动循环及放大缩小查看图片信息,标题栏显示的是图片名称。按移动平台自带的返回键返回系统主界面,可以继续查看列表其他树种的各项信息。

4.2 按树木形态查询

勾选“按树木形态查询”后,系统读取园林树木识别特征表中sheet1表的树木部位名称展开二级查询菜单,显示可供选择的树木部位。选择要查询的树木部位(可单选或组合),下方会显示对应文本框,点击文本框后,系统读取园林树木识别特征表中形态术语供用户选择特征。如图6、图7所示。

图6 树木形态查询

图7 选择树木特征

点击【查询】,系统根据园林树木识别特征表中Sheet2表的主要识别特征进行检索,将检索到的完全符合特征条件的树木名称以列表形式显示。此时将“按树木形态查询”前的勾选框取消,可收回二级查询菜单,让界面下方列表多显示几行信息,以方便用户浏览。

4.3 按树木科属查询

勾选“按树木科属查询”后,系统检索园林树木识别特征表中sheet1表的科、属信息,将检索到的符合条件的树木名称以列表形式显示。点击【清空】,清空列表内容,如图8所示。图9为点击列表某一行查看该树木的图片信息。

图8 树木科属查询

图9 树木图片展示

5 结 语

通过南通市园林绿化调查项目的生产实践,技术人员先后掌握了200多种树木的特征,在对各类树种归纳总结的基础上,研发了园林树木辅助查询识别系统。该系统操作方便、识别率高,有效解决了外业调查人员不认识树、忘记树名或代码、对相似树种判断不准等问题,大大提高了园林树木调查工作效率,保障了园林绿化调查项目的项目进度和成果质量。同时系统也存在一些不足之处,主要是资料收集方面还需要扩充更多的植物种类,可增加每种植物的基本信息和图片信息等,还有系统的研发主要面向于单机的使用,单机系统具有局限性,数据及程序的共享性不高,还有待通过生产实践进一步完善[6]。

猜你喜欢
图库名称树种
金山农民画矢量图库的建设与应用
常绿树种在新疆的应用现状
现代园艺(2018年2期)2018-03-15 08:00:35
视图库在AI浪潮里的发展应用
Photoshop CC图库面板的正确打开方法
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况
城市绿化树种选择,只顾眼前你就输了
一个树种的国家战略