APP下载

基于ImagePy的水敏纸图像预处理及液滴参数测量

2021-06-24郭国法

科学技术与工程 2021年13期
关键词:彩色图像插件图像处理

亢 洁,刘 港,郭国法

(陕西科技大学电气与控制工程学院,西安 710021)

农药在控制农作物病虫害方面具有成本低、有效、快速的特点,是作物病虫害控制的最有力的方法。大量喷洒会造成农药浪费,严重危害环境和人们的身体健康[1]。因此如何提高农药利用率、减少农药使用量成为亟待解决的问题。快速且有效获取施药后雾滴在目标上沉积的喷雾量、雾滴尺寸和雾滴在目标上的覆盖均匀性等信息,可以对施药效果进行定量评价,为进一步优化农药喷施技术提供参考。

目前较普遍应用的雾滴尺寸测量及分布特性可分为三类方法。第一类是机械方法:如将雾滴冷冻或冷却成固体颗粒进行测量,以及利用不同尺寸雾滴的运动惯性和速度差异特性来区分雾滴尺寸范围等;第二类是电气方法:如充电线法(charged-wire)和热线法(hot-wire),比如测量流体(包括液体、气体)导热系数的方法,此方法具有速度快、精度高的特点;第三类是光学方法:如利用雾滴的一些物理特性(光强、相差、荧光和极化等)进行测量和高速摄影、激光全息、激光图像化和扫描技术等。通常光学测量系统价格昂贵,且使用调试比较烦琐[2]。水敏纸(water-sensative paper,WSP)是提供喷雾覆盖快速评估的一种简单的机械方法,是一种黄色表面的涂布纸,在与水滴接触时变成深蓝色,它具有显色明显、易于图像处理和保存的特点,是目前最常用的雾滴收集器[3-4]。

表 1 FCM、OTSU、彩色图像分割法分割效果对比Table1 Comparison of segmentation effects of FCM,OTSU and color image segmentation methods

目前,国外已开发了多种水敏试纸图像处理软件,其中Fox等[5]提出了一种WSP视觉分级喷雾覆盖方法的结果;Panneton[6]开发了一种相机/照明系统,测量WSP上斑点覆盖面积的百分比;Mario等[7]评估了几种水敏纸图像处理软件分析喷雾质量的能力;Zhu等[8]基于PC机和扫描仪开发了一种便携式雾滴参数测量系统。Machado 等[9]提出并实验评估了一种基于智能手机的移动应用程序,名为DropLeaf,通过水敏纸来测量农药覆盖率。Ferguson 等[10]将SnapCard智能手机应用程序与DropletScan,SwathKit,DepositScan,ImageJ和Drop Vision-Ag这些水敏纸图像处理软件进行了比较。Ömer等[11]基于美国国家仪器的Vision Acquisition Software(VAS)开发了一种水敏纸图像处理软件。国内虽然起步较晚,但也取得了较好的研究成果,郑加强[2]、郭娜等[3]、吴亚垒等[12]、祁力钧等[13]、邱白晶等[14]、袁江涛等[15]、史春建等[16]、梁萍等[17]都研究了基于图像处理的雾滴检测方法。在这些水敏纸图像处理软件中,目前比较常用的水敏纸图像处理软件有SnapCard[10]、DepositScan[18-19]和ImageJ[20-21],这些软件都可以用于确定喷雾参数覆盖率。DepositScan和ImageJ 软件还可以计算液滴个数,而SnapCard软件不能计算液滴个数。ImageJ 软件在处理水敏纸图像时首先使用大津(OTSU)法将图像转换为灰度图像再进行后续处理。DepositScan软件首先利用手动或自动选取阈值将彩色水敏纸图像转换为8位灰度图像,然后再进行后续处理。SnapCard软件是一款智能手机应用软件,它首先使用智能手机自带的相机获取水敏纸图像。SnapCard软件的缺陷是在获取水敏纸图像和人工选择感兴趣区域时造成误差。由于水敏纸图像在进行扫描或拍照的过程中往往会发生不同程度的倾斜,上述这些软件缺少对水敏纸图像的旋转和水敏纸感兴趣区域提取等预处理操作,需要先借助其他软件得到水敏纸的水平图像并提取感兴趣区域,然后才能进行后续处理,而且这些软件在进行水敏纸图像分割时均采用将水敏纸转换为灰度图像再进行分割,这样在转换的过程中会失去一些有用信息,导致检测精度不高。

针对这些问题,为了提高雾滴检测的精度和效率,基于ImagePy设计一种可以对水敏纸图像进行自动检测、旋转、自动提取感兴趣区域,对水敏纸图像进行彩色图像分割的水敏纸雾滴检测软件,并通过实验验证本文图像处理软件的检测效果。

图 1 未使用的水敏纸Fig.1 Unused water-sensitive paper

图 2 收集液滴后的水敏纸图像Fig.2 Image of water-sensitive paper after collecting droplets

1 材料和方法

1.1 实验数据的获取

通过田间喷雾实际情况,以水敏纸收集雾滴,然后通过扫描仪获取雾滴的数字图像,再基于ImagePy测量雾滴参数。水敏纸是一种高灵敏度的专业试纸,水敏纸是黄色的,与液体接触后会变成蓝色,水敏纸可以用来检查雾滴分布情况,喷雾的密度和雾滴的尺寸等。图 1为未使用过的水敏纸,图 2 为收集农药雾滴后的一张水敏纸图像。实验的目的是研究喷嘴的型号和喷雾的压力对农药喷洒系统的影响,因此,实验通过改变喷洒农药的喷嘴型号和喷药的压力,携带农药的农用机械在试验麦田中分别做15组不同的实验,事先将水敏纸缠绕固定在与麦苗基本同高的铁杆上(如图 3所示),这样水敏纸中间的1/2区域面向农用机械喷洒农药的方向,而水敏纸左侧1/4区域和右侧1/4区域粘贴在一起,在农用机械喷洒农药的背面,每组实验在农用机械驶过的不同位置可获得A、B、C、D 4张水敏纸。图 4为携带农药的农用机械。

图 3 实验时的水敏纸固定示意图Fig.3 Schematic diagram of fixing water-sensitive paper during test

图 4 携带农药的农用机械Fig.4 Agricultural machinery with pesticide

1.2 ImagePy图像处理软件简介

ImagePy图像处理软件是用Python语言编写的可扩展的图像处理框架。其界面架构由管理层、交互层、显示层三部分构成。管理层包含若干管理器,组织所有的工具和插件,当运行软件时,插件管理器和工具管理器的组件分别映射为主界面的菜单栏和工具栏。在交互层,将每执行的操作、对话和命令组合到运行函数中,随后生成显示层的数据[22]。

ImagePy是一个开源的、基于Python的图像分析处理软件,具有便捷的插件拓展能力,可以在原软件上根据需求进行二次开发。此外,ImagePy可以方便地集成现有Python系统库中的函数,将Scipy、 Scikit-image、 OpenCV、 SimpleITK以及任何基于 Numpy 的图像处理库接入,极大地提高了扩展和开发基于现有插件的新插件的能力。对于在复杂农田环境下采集到的水敏纸图像,凭借ImagePy强大的交互功能,可以编写需要的函数,添加插件,解决相应的问题[22]。有关ImagePy的详细信息,请访问网站https://github.com/Image-Py/imagepy。

1.2.1 界面显示

ImagePy的界面显示样式有两种。一种是ImagePy样式,一种是经典的ImageJ样式,可通过Window向Windows Style切换,如图 5(a)所示。

ImagePy样式如图 5(b)所示。由主界面、菜单栏、工具栏以及图像窗口构成。

图 5 界面模式Fig.5 Interface mode

1.2.2 添加插件

ImagePy基本用户界面支持开放插件,用户可自行根据需求进行软件的二次开发。编写相应的功能脚本并命名,运行软件,经加载器加载,可以生成相应的插件。可以添加的选项有菜单、工具和组件[22],如图像倾斜校正插件、图像拼接插件和雾滴覆盖率选项。

2 样本图像处理

由于采集时环境的复杂性,采集到的水敏纸样本图像,往往存在噪声点、干扰等,会使图像出现对比度不足、含有噪声等缺点,影响图像的分析处理。因此在进行图像分析前,先对样本图像进行处理。对样本图像的处理包括图像预处理、水敏纸图像自动旋转裁剪、图像拼接和图像分割。

2.1 水敏纸图像预处理

一次试验收集到的样本水敏纸中不仅有水敏纸图像,还有胶带和标注的字母等干扰。因此在ImagePy软件中对水敏纸图像进行预处理,以消除图像中的无关信息,预处理流程如图 6所示。

首先对收集到的水敏纸图像进行灰度化、二值化、取反、腐蚀、滤波操作,消除一些无用信息的干扰。处理后的效果如图 7(a)所示。

为得到仅含有水敏纸的区域,再进行区域分析操作,对图像进行区域筛选。利用area阈值滤除不属于水敏纸的噪声,得到仅保留水敏纸区域的二值图像,如图 7(b)所示。

图 6 预处理流程图Fig.6 Preprocessing flow chart

图 7 水敏纸图像及预处理后图像Fig.7 Water-sensitive paper image and pre-processed image

2.2 水敏纸图像自动旋转裁剪

由于采集到的样本图像存在一定角度的倾斜,在预处理后还需对样本图像进行旋转,以使图像归正。通过对ImagePy图像处理软件二次开发,添加插件,从而实现水敏纸图像的自动旋转裁剪,得到归正的仅保留水敏纸区域的图像。在ImagePy中添加该功能插件的步骤如图 8所示。

图 8 ImagePy中添加自动旋转裁剪插件的步骤Fig.8 The steps of adding an automatic rotation and cropping plug-in in ImagePy

实现图像的自动旋转裁剪,主要借助了两个函数,分别为最小外接矩形函数(minAreaRect)和垂直边界最小正矩形函数(boundingRect)。

2.2.1 水敏纸图像自动旋转裁剪步骤

minAreaRect函数得到的返回值包括最小外接矩形的中心(x,y)、宽、高、旋转角度。boundingRect函数返回4个值,分别是x、y、w、h,其中(x,y)是矩形左上点的坐标,w、h是矩形的宽和高。

如图 9所示,当得到对象轮廓后,可用boundingRect()得到包裹此轮廓的最小正矩形,minAreaRect()得到包裹轮廓的最小斜矩形。

具体的实现水敏纸图像自动旋转裁剪步骤为:采用minAreaRect函数确定水敏纸图像需要旋转的角度,实现旋转,使倾斜水敏纸图像归正;采用boundingRect函数获取感兴趣区域,即水敏纸图像区域,实现水敏纸区域的裁剪,得到只包含有黄色水敏纸区域的图像。在ImagePy软件中添加名为minAreaRect的插件。如图 10 所示。

图 9 两个函数的原理Fig.9 Principle of the two functions

图 10 添加的插件Fig.10 The added plug-in

实现图像自动旋转裁剪的操作步骤如图 11所示。在图 12中展示了实现该功能的示意图。

图 11 水敏纸图像自动旋转裁剪原理框图Fig.11 Block diagram of the realization of automatic rotation and cutting of water-sensitive paper images

图 12 水敏纸自动旋转裁剪示意图Fig.12 Schematic diagram of automatic rotation and cutting of water-sensitive paper

(1)在二值图A中查找水敏纸区域所在外接最小正矩形R1;在二值图A中查找水敏纸区域所在的具有旋转角度的外接矩形R2。

(2)根据R2的旋转角度,对矩形区域R2进行旋转,使水敏纸上边缘保持水平,得到图像A′。

(3)在归正后图像A′中再次查找最小正矩形得到R3。

随后对彩色图像进行同等角度的旋转,获得归正的图像;再对图像利用矩形区域R3进行最终的精细分割,即得到最终结果。如图 13所示。

图 13 水敏纸样本图像自动旋转裁剪Fig.13 Automatic rotation and cropping of water-sensitive paper sample images

在上述确定旋转角度的过程中,需要分析两种情况,分别为采集的水敏纸图像的上边界左高右低和左低右高,如图 14所示。

α、β为水敏纸图像倾斜的角度; θ为minAreaRect函数返回的旋转角度值图 14 两种角度情况Fig.14 Two angle situations

图 15 添加的插件Fig.15 The added plug-in

2.3 水敏纸图像拼接

根据田间喷施农药的真实情况,喷施装置在田间从前往后行进对农作物喷洒农药,水敏纸中间1/2区域面向农用机械喷洒农药的方向,而水敏纸左侧1/4区域和右侧1/4区域粘贴在一起,在农用机械喷洒农药方向的背面。因此采集到的水敏纸图像,应被裁剪成三部分,分别为图像的左侧1/4区域、中间1/2区域、右侧1/4区域,再将左侧1/4与右侧1/4拼接在一起,作为农作物的背面。

为了实现水敏纸图像的拼接功能,通过在开源软件ImagePy图像处理软件中添加名为montage img的插件(图 15)。图 16为水敏纸图像拼接程序框图,原图及拼接完成后的图像如图 17 所示。

图 16 水敏纸图像拼接程序框图Fig.16 The block diagram of the image mosaic process of water-sensitive paper

图 17 水敏纸裁剪及拼接结果图Fig.17 Water-sensitive paper cutting and stitching results

2.4 图像分割

实验采用RGB颜色空间模型。RGB模型是工业界的一种颜色标准,是通过对红(red)、绿(green)、蓝(blue)3种颜色的变化以及相互之间的叠加来得到各种颜色的总称。该标准几乎包括人类视觉所能感知的所有颜色,是目前运用最广的颜色模型之一[23]。

2.4.1 水敏纸图像分割效果对比

针对模糊C均值(FCM)、灰度图像的自动阈值分割(OTSU)和彩色图像分割这3种图像分割方法,在数据集中选取了2幅水敏纸图像进行分割效果的测试,并对算法结果进行了对比。其结果如表 1 所示。

从表 1可以看出,FCM和OTSU算法的结果基本一致,原因是这两种分割算法均采用了迭代的方法,使得类内间距最小以及类间间距最大。不同之处是FCM分割的依据是隶属度矩阵,而OTSU的分割依据是最优灰度阈值。且从表1中红色框所选位置可以看出,当采用FCM与OTSU算法时,会导致雾滴信息的缺失,而采用彩色图像分割法时,可较完整地分割出雾滴。

随后对3种算法的仿真运行时间也进行了分析,对比发现,FCM运行时间明显长于OTSU和彩色图像分割法,效率不高,而OTSU和彩色图像分割法的仿真运行时间很迅速,但相比之下,彩色图像分割法不用先把图像转换成灰度图,再完成分割,因此彩色图像分割法时间明显快于OTSU算法。

经以上分析,考虑到水敏试纸上雾滴斑痕数量多,当数据量大时,FCM和OTSU算法都是迭代运算,计算量将会大大增加,效率会很低。且由于FCM和OTSU算法将图像转换成灰度图后,再实现图像分割,会造成一部分雾滴信息确缺失。针对这些问题,采用了彩色图像分割法进一步对水敏纸图像进行了分割。

2.4.2 彩色图像分割法结果图

表 2 展示出了用彩色图像分割法对两幅水敏纸图像处理后的效果图。

表 2 彩色图像分割法效果图Table2 Effect drawing of color image segmentation method

采用彩色图像分割法分割的图像完整,效果好,耗时少,解决了将水敏纸图像转换为灰度图像再分割时导致的分割不准确的问题。

3 雾滴参数统计

雾滴尺寸的统计方法有很多种。对雾滴各项参数的计算统计,主要包括雾滴覆盖率,雾滴的最大值、最小值、中间值及平均值。

对雾滴参数的统计在ImagePy软件中完成。在软件原有功能的基础上,编写了雾滴覆盖率和中间值的程序,并添加进软件中,实现了雾滴参数的自动统计。对话框的选取如图 18所示。

图 18 参数对话框Fig.18 Parameter dialog box

3.1 雾滴个数结果比较

选8张水敏纸图像做实验,采用3种方法统计雾滴个数,分别为人工计数法、DepositScan软件计数和本文方法计数。处理得到的雾滴数量、不同方法的计数结果如表 3所示。

表 3 不同方法计数验证误差Table3 Counting verification errors of different methods

误差率计算公式为

(1)

式(1)中:ε为误差率;α为人工计数;β为方法计数。

由表 3分析可知:DepositScan软件对所选8张雾滴图像计数,误差率范围为3.5928%~12.6531%;用本文方法预处理、裁剪、旋转、分割后计数,误差率范围为0.1475%~5.8824%。基于相同的样本,与人工计数法结果对比表明,本文方法较DepositScan软件计数结果精准度高,且对于较浅的细小雾滴提取效果有所提高。

表 4 雾滴覆盖率检测结果Table4 Test results of droplet coverage

横坐标为本文方法测量值,纵坐标为DepositScan法测量值图 19 两种方法测量的雾滴最大值、平均值和中值相关关系散点图Fig.19 Scatter diagram of the maximum,mean and median values of droplets measured by two methods

3.2 雾滴覆盖率结果比较

雾滴覆盖率可通过雾滴覆盖区域面积占统计总面积的百分比表示,计算公式为

(2)

式(2)中:C为雾滴覆盖率;As为雾滴区域像素数;Ap为试纸区域总像素数。

应用DepositScan软件以及本文方法,求取8 张样本的雾滴覆盖率,结果如表 4 所示。

图像覆盖率的平均相对误差的计算公式为

(3)

DepositScan法与本文算法在雾滴图像正面的雾滴覆盖率平均相对误差为7.4525%,在雾滴图像背面的雾滴覆盖率平均相对误差为10.48%。其中雾滴图像正面中,5号试纸的效果最明显,雾滴覆盖率提高了22.83%;雾滴图像背面中,img4试纸的效果最明显,雾滴覆盖率提高了34.36%。

对于本文方法,人工统计各个试纸上的雾滴个数与实际雾滴数的差,依次为22、5、12、1、23、3、13、1、7、21、1、4、14、2、31、3个,占雾滴总个数的3.3033%、3.5714%、1.1976%、0.6803%、5.8824%、2.2059%、4.3478%、0.9174%、2.8571%、3.0973%、0.1475%、2.1164%、2.8056%、1.7857%、4.6899%、2.9126%,平均相对误差为2.6574%,因此本文算法能够提取试纸上94.1176%以上的雾滴。

3.3 两种测量方法的相关分析

对所选8张水敏纸图像的雾滴最大值、平均值和中值进行相关性分析,用Excel计算相关系数并绘出散点图。表 5为DepositScan法与本文方法对样本图像的雾滴最大值、雾滴平均值和雾滴中值的测量结果,图 19为两种方法的相关关系散点图。

表 5 8张水敏纸图像雾滴参数统计Table5 Droplet parameters statistics of 8 water-sensitive paper

分析两种方法的相关性,DepositScan法与本文处理法测得的雾滴最大值之间相关系数为0.9954和0.9818,雾滴平均值之间相关系数为0.9751和0.9924,雾滴中值之间相关系数为0.9888和0.9965。经统计检验,实际得到的相关系数R值均大于R0.01(6)=0.834,表明两种方法极显著相关,本文方法可用于水敏纸图像的实际测量工作。

4 结论

通过对ImagePy框架进行拓展,开发了相应的插件,提出了一种有效测量雾滴尺寸参数的水敏纸图像处理软件,解决了目前水敏纸图像处理软件缺少对水敏纸图像的旋转等预处理操作,以及将水敏纸图像先转换为灰度图像再进行分割而导致检测精度低的问题。并做了相关实验,实验结果表明:针对雾滴个数,用本文方法计数,误差率范围为0.1475%~5.8824%,用DepositScan软件计数,误差率范围为3.5928%~12.6531%,本文方法计数准确率高。针对雾滴覆盖率,DepositScan法与本文算法在雾滴图像正面的雾滴覆盖率平均相对误差为7.4525%,在雾滴图像背面的雾滴覆盖率平均相对误差为10.48%,本文方法可提取试纸上94.1176%以上的雾滴。针对雾滴的最大值、平均值和中值,分别对两种方法进行了相关性分析,实际得到的相关系数R值均大于R0.01(6)=0.834,表明两种方法之间呈极显著的相关性,验证了本软件的有效性。

猜你喜欢

彩色图像插件图像处理
海战场侦察图像处理技术图谱及应用展望
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
基于二维直方图的彩色图像全局阈值分割方法研究
自编插件完善App Inventor与乐高机器人通信
基于FPGA的实时彩色图像边缘检测
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于OSGi的军用指挥软件插件机制研究
机器学习在图像处理中的应用
基于DCT—DWT—SVD的彩色图像安全存储方案
基于jQUerY的自定义插件开发