图像阈值分割法在Android端病害图像诊断的应用

2021-08-02 22:23刘小红马凌仇焕青
农业灾害研究 2021年1期

刘小红 马凌 仇焕青

摘要 在移动端直接上传获取的病害图像进行远程诊断时,因图片数据量大可导致上传速度缓慢,增大服务端数据处理难度,影响图像识别的及时性和准确性。针对这个问题,以黄瓜病害为例,提出在移动端先将获取的图像进行图像裁剪和阈值分割处理,提取用户感兴趣区域上传远程服务端。系统测试数据发现,病害图像经过裁剪和阈值分割处理后,在获得良好图像质量前提下,大大减少了图像数据容量,能加快图片上传速度,降低远程服务端图片数据处理难度,提高诊断的及时性,具有较高的实用性。

关键词 阈值分割;Android;图像诊断

中图分类号: TP391.41 文章标识码:A 文章编号:2095–3305(2021)01–0071–02

近几年农业灾害研究已成为热点,农业灾害研究也是对农作物进行科学防治的前提。随着手机应用的不断普及和拍摄图像方便的特点,已有国内外学者利用Android手机结合图像处理技术在病害或虫害诊断方面开展了深入研究,如郑姣[1]等在手机端通过分析水稻四种病害的颜色、形状、纹理特征,采用图像预处理、增强、分割、特征提取以及识别的处理方法,实现基于基Android水稻病害图像识别系统。但在特征提取和病害诊断过程中,受手机硬件性能的限制,容易出现图像处理能力有限和数据库检索能力不足等问题。文献[2-5]提到将手机端采集到的病害图片发送至服务器端,在服务器端接收图片后进行分割,利用颜色矩阵和灰度共生矩阵来提取病害特征参数,最后利用向量机进行识别并返回结果。这些虽能解决Android手机端图像处理能力有限和数据库检索能力不足的问题,但在进行病害或虫害图像远程诊断时,需上传病害或虫害特征清晰的大容量图片,会导致上传速度缓慢、消耗数据流量、增大服务端图像数据处理难度,影响图像识别的及时性。因此,需要对诊断的病害图像在手机端进行图像分割处理,去除背景,提取重要的信息,减少图片数据大小,加快上传速度,提高服务端图像处理能力。

现以黄瓜病斑图像为研究对象,在移动端将随时获取的原始图像进行裁剪,保留页片区域后,再进行阈值分割去除背景并提取用户感兴趣的区域,控制病害图片大小,继而加快图片上传速度。

1 Otsu图像阈值分割方法

在Android端实时采集的病害图像,未经处理就直接上传到服务端进行图像预处理、分割、特征提取和识别等,会影响上传速度,消耗带宽和数据流量,同时也加大服务端图像处理的难度,延缓识别时长。因此,需要将实时图像进行裁剪,去除多余的部分,以控制图片大小。裁剪后的图像包含叶片健康区域和病害区域,这二种区域从视觉上分别以绿色和非绿色二种颜色相交错。而在服务端对图像进行特征提取时只针对病斑区域处理,还要进行病斑分割处理。图像分割的目的是去除健康区域,保留病害区域。常用分割方法有阈值分割、区域分割、边缘检测分割。而阈值分割法具有计算简单、速度快和效率高等优点,很适用于Android中进行病害图像分割[6]。

在Android中端进行图像分割的思路:在移动端首先读入带有病斑的黄瓜病害彩图,进行适当的裁剪后,保留页片部分,再将RGB图像编写灰度化程序使彩图灰度化后,形成前景和背景图像,最后利用Otsu分割算法(即最大类间方差法)进行阈值分割,去除图像非病斑区域,实现病斑区域提取[7-9]。病斑图像分割流程图(图1)。

其中,OTSU算法是将图像灰度化后归一化处理,循环寻找类间方差最大值,即最佳阈值,利用最佳阈值将图像分割成病害区域、健康区域,提取目标区域[10-12]。OTSU算法具体步骤如下:

(1)假设图像的大小为M×N,取其中一个阈值为t,图像归一化处理后像素灰度值y,输入图像的灰度图,利用公式y=(x-MinV)/(MaxV-MinV)进行归一化处理,使像素的灰度值分布在0~255,其中x为归一化前的值,y为归一化后的值,MaxV、MinV分别为原始图像灰度的最大值和最小值。

(2)当yt时像素个数记为N2,前景像素点数占整幅图像的比例记为w0,平均灰度u0;背景像素点数占整幅图像的比例为w1,平均灰度u1。图像的总平均灰度记为u,类间方差记为g。

(3)循环寻找类间方差最大值g,并记下此时的阈值t,即为最佳阈值。

(4)利用最佳阈值进行图像阈值化。

2 实验与结果分析

图像要提取病害区域,在手机端须应用openCV进行图像分割。openCV是一种跨平台的图像处理库,有C、C++、Java等接口,可应用到Android平台上进行图像处理。openCV环境搭配方法:先安装JDK1.8、Android Studio2.3等;接着在官网下载并解压OpenCV的 Android pack并解压,将OpenCV中SDK目录下JAVA接口导入到新建的Android 项目中;选中项目按右键进行Module Dependency的配置,添加Opencv Library模式;最后将Opencv 的sdk/native/libs下的文件全部復制到新建项目libs库中[13-14]。

在Android端获取病害图像,裁剪成绿色和病斑区域后,进行灰度化处理,利用Opencv中的cvCvtColor(const CvArr*src, CvArr*dst, int code)方法将原图src的RGB空间转换到目标图dst,并设置相应的code值为CV_BGR2GRAY,将原图转换为灰度图[15]。

OpenCV中threshold( )方法是对单通道数组进行固定阈值操作,由于病害图像经过灰度化后,病斑特征边缘明显度有所降低,如果采用固定阈值操作来进行分割,效果比较差。因此,采用OpenCV中的adaptiveThreshold(myGray,

myAdaptive,255,ADAPTIVE_THRESH_MEAN_C,THRESH_BINARY_INV,5,5)方法进行自适应阈值分割病害区域,效果比较好,其中myGray表示灰度图像数组;myAdaptive表示输出图像组;并设定预设满足条件最大值255;自适应阈值算法参数为ADAPTIVE_THRESH_MEAN_C,并计算出邻域的平均值再减去第七个参数的值。阈值类型为THRESH_BINARY_INV, 邻域块大小为5,用来计算区域阈值。阈值分割的部分效果图(图2~4)。

在Android端進行原图裁剪并分割后,图片大小有所缩小,且在病斑图像效果上都差不多,不影响服务端后期的图像识别处理。在手机端再将提取病斑后的图像进行远程上传,选取100个样本进行测试,很大程度上缩小了图片数据量、大小,降低了网络流量,提高了上传速度,同时便于后期服务端的快速处理。图像分割的实验记录(表1)。

3 结论

主要以黄瓜病斑图像为研究对象,在移动端进行病害远程诊断时对输入的病害图像进行适当的裁剪以获取只有绿色区域和病斑区域的页片图像,再将裁剪后的图像调用本地方OpenCV内的相关函数,编写灰度化程序,将彩色图像灰度化后利用Otsu分割算法进行分割,去除图像非病斑区域,实现病斑区域提取。试验证明,通过此方法可大大缩小图像数据大小,加快图片上传速度,提高远程服务端诊断处理能力。

参考文献

[1] 郑姣,刘立波.基于Android的水稻病害图像识别系统设计与应用[J].计算机工程与科学,2015,37(7):1366-1371.

[2] 夏永泉,李耀斌,李晨.基于图像处理技术与Android手机的小麦病害诊断系统[J].安徽大学学报(自然科学版),2016,40(2):26-31.

[3] 王梅嘉.基于Android平台的苹果叶部病害远程识别系统研究[D].咸阳:西北农林科技大学,2015.

[4] 吴子龙.基于Android移动终端的烟草病虫害图像智能识别系统研究[D].昆明:云南农业大学,2015.

[5] 郭彦麟.基于Android的黄瓜病虫害检测系统[D].银川:宁夏大学,2017.

[6] 刘桂红,赵亮,孙劲光,等.一种改进粒子群优化算法的Otsu图像阈值分割方法[J].计算机科学,2016,43(3):309-312.

[7] 罗钧,杨永松,侍宝玉.基于改进的自适应差分演化算法的二维Otsu多阈值图像分割[J].电子与信息学报,2019,41(8):2017-2024.

[8] 李想,谢慕君.改进Otsu图像分割方法[J].长春工业大学学报,2019,40(2):117-120.

[9] 袁小翠,黄志开,马永力,等.Otsu阈值分割法特点及其应用分析[J].南昌工程学院学报,2019,38(1):85-90,97.

[10] 蔡云飞,郭宇俤,花侨飞,等.基于Android手机的玉米幼苗叶片图像分割方法[J].福建电脑,2017,33(7):16,43.

[11] 刁广强.基于图像的水稻病虫害分割算法研究[D].杭州:浙江理工大学,2014.

[12] 韩雪峰,陈国斌,郭鹏,等.基于安卓平台的作物病害图像自动分割算法实现[J].电脑知识与技术,2015,11(22):112-114.

[13] 刘贤辉.基于OpenCV在移动端的图像处理技术[J].电子技术与软件工程,2017(9):70.

[14] 王武.基于OpenCV的Android手机全景图像拼接技术研究[D].长春:长春理工大学,2018.

[15] 曾嫱.基于图像处理的烟叶病害识别方法研究[D].成都:西华大学,2018.

责任编辑:黄艳飞

Application of Image Thr-eshold Segmentation Me-thod in Disease Image Dia-gnosis Based on Android

LIU Xiao-hong et al (Hunan Institute of Information Technology, Changsha, Hunan 410151)

Abstract When disease Image upload to remote diagnosis In mobile, the large amount of image data will reduce upload speed and increase the difficulty of data processing on the server, and affect the timeliness and accuracy of image recognition. In order to solve this problem, this paper takes the cucumber disease as an example, proposes to cut and segment the image at the mobile at first , then extract the region of user interest , upload it to the remote server at last. The test data of the system show that after clipping and thresholding the image With good image quality, the image data capacity can be reduced greatly, the upload speed of the image can be accelerated, and the difficulty of image data processing on the remote server can be reduced, improve the timeliness of diagnosis, it has higher degree of practicality.

Key words Threshold segmentation; Android; Image diagnosis