基于视觉技术的植物叶片面积测量研究
2020-11-16王雪晴郭亚航
王雪晴 郭亚航
摘 要:以校园常见的乔木叶片为研究对象,利用视觉技术并借助MATLAB丰富的图像处理功能对叶片图像进行了一系列的图像处理,计算出乔木叶片的面积。与Photoshop图像处理后的面积测量进行了比较分析,对比结果表明2种方法得出的叶片面积结果很接近,计算相对误差的平均值为0.564%,表明该叶片面积测量方法具有较强的可行性。与传统工具测量相比,这种方法在不破坏植物叶片的前提下具有准确、快速、精度高等优点。
关键词:视觉技术;MATLAB;乔木叶片;面积测量;图像处理
中图分类号:S-3 文献标识码:A
DOI:10.19754/j.nyyjs.20201030003
植物叶片面积的大小决定了其光合作用的强度,也直接影响了植物生产力的高低,因此准确快速测量叶片面积的方法对于农业生产实践具有很重要的意义。测定叶面积的方法有传统的手工测量方法,如方格法、称重法、系数法、回归方程法等,虽然方法简单,但测量耗时且精度低[1]。随着视觉技术的迅速发展,以及各种各样的数学和图像处理软件逐渐走进人们的生活。用于算法开发、数据分析和图像处理的MATLAB在参数测量方面具有了很大的优势和突破。因此,在这种前提下本文基于视觉技术并借助MATLAB图像处理方法对植物叶片面积进行了测量研究。
1 测量原理
本文基于視觉技术并借助MATLAB图像处理来对植物叶面积进行测量。首先将待测的植物叶片摘下,放在参照物上,用玻璃片压平。再通过OPPO R9手机[2]自带的后置摄像头将叶片拍摄成数码的相片,也就是把乔木叶片转换成计算机可以识别和处理的图形模式。数字图像都由一个个像素点所组成,只需知道每一个像素点的真实面积后,就可以来通过像素数求出乔木叶片的叶面积,计算公式如(1)[3]。
S=m1×S0m0
(1)
式(1)中S代表所求的叶片面积,S0表示参照物的实际面积,m1代表叶片的像素个数,m0表示参照物的像素个数。因此只需要知道S0的面积,然后通过MATLAB的图像的处理得到叶片的像素个数m1和参照物的像素个数m0,就可以求得叶片的面积。
2 植物叶片的选择
利用视觉技术对植物叶片进行测量,首先必须选择合适的植物叶片,生活中常见的叶片有多种,如芹菜叶片,苹果树叶片等多种。但是选择的叶片必须遵循以下几个原则:选择的植物叶片最好为常见的植物叶片,因为常见的叶片具有代表性,不常见的植物叶片我们了解的很少,并不能十分准确把握它们的生活特征;选择的植物叶片必须较为规则,芹菜的叶片较复杂,在边缘检测时会产生卡机和误差很大等问题,故排除。结合以上两个原则,最终选择了校园图书馆对面的乔木叶片,乔木大多生活在热带和亚热带地区,适应能力好,萌发力强,并且四季不变色,也无须打农药治理。
3 叶片面积测量总体流程
乔木叶面积测量过程结构图如图1 所示。首先利用相机获取乔木叶片,然后对图像进行去除阴影、调正大小的预处理,预处理后的图像进一步进行处理:图像的灰度变换,因灰度图像可以便于我们观察和减少干扰因素;灰度图像的分割;调整对比度并利用边缘检测得到精准的叶子轮廓;形态学的处理;中值滤波。然后对处理后的图像进行标记得到的乔木叶的像素个数,最后来计算乔木叶片的面积大小。其中乔木叶图像的处理过程是图像处理法测定乔木叶面积的关键所在,因此,在获取乔木叶的图像后,应用MATLAB软件对图像进行了分析和处理。
4 乔木叶片面积测量的实现
4.1 图像获取
利用视觉技术测量乔木叶面积的硬件部分主要由成像的设备、面积固定的参照物和计算机组成。成像的设备选用的是OPPO R9手机自带的相机后摄像头(像素1920W)来获取乔木叶图像,然后把图像传入计算机中,使MATLAB读取传入计算机的乔木叶片图像。利用MATLAB计算叶面积最大的优点是不会破坏叶片的结构。本次测量要求计算机安装MATLAB软件,且可以快速地运行软件。其中最为关键的一个设备就是参照物,此研究中运用了1个边长为2cm的白色正方形纸板作为参照,参照物必须与底板有很大的颜色差距(本次选用和手机拍摄大小一样的灰褐色图像作为背景图像)。因参照物面积的精准度选择会直接影响测量精度,所以参照物的面积一定要精准。
操作过程中,手机拍摄图片的物距也要有严格的距离要求,保证像素代表的面积为一个定值,还要求垂直拍摄,且镜头的焦距也是个定值,定值的不变才可减少实验中的误差。获取的图片共2张,其中有1张是固定在背景的纸板上拍摄的图片,一张是颜色和纸板差距较大的图片,就是背景图像。
4.2 图像预处理
4.2.1 除去实验中的不利因素
因为图像拍摄是由相机所完成的,所以也导致了许多影响叶面积计算的因素。比如乔木叶子在拍摄时候就出现了较大面积的阴影,如果不把这些不利因素去除,计算的乔木叶面积偏差就会很大,这就导致了计算精度产生了巨大的误差。
因此此文运用了Photoshop2.0对乔木叶片进行了去除阴影处理,处理后的效果如图2所示,处理前的面积S=687mm2,处理后的面积S=610 mm2。
4.2.2 调整图像大小
因为运用相机拍摄的图片很大(1920×1440),MATLAB直接进行识别和读取的进度就会很慢,极大地增加了测量的工作量,更有甚者,读取过程中MATLAB叶很可能直接卡死,对操作者造成了很大的麻烦,甚至影响了实验的测量结果。还会可能让图片和数据丢失,造成实验必须从头开始。所以,要对图片的大小进行调整。
4.3 图像处理
4.3.1 图像灰度变换
由于用手机相机拍摄的图片为JPG格式,这样可能导致实验测量过程干扰因素的增加,增大了实验的误差和不稳定性。所以需把彩色图像调整为灰度图像,因灰度的图像可以让图像中叶子的轮廓特征更加明显,测量的干扰因素尽可能减少。图3为灰度变换后的乔木图像。
4.3.2 图像分割
调整后的灰度图像虽然在颜色和大小上面已经相对减少了误差和干扰因素。但是计算机还不能自动地对调整后的图像进行识别和处理,为了达到这一点,必须对调整后的灰度图像再次进行分割。所谓的分割,就是按照需要并且规定的原则,将图像分割为多个互不相交的小区域[4],计算机可以自动识别和处理这些小区域,这样也就减少了工作量,并且排除一部分的人为误差。图像的分割也可以将其理解为对图像中所需要的特性区域提取出来。此文对叶片的面积进行测量,就提取出像素灰度值這一区域。
在MATLAB中,为了可以试验图像的差分,此文选用了imsubtract函数[5]来实现这一过程,第1步先输入待测的图片,然后输入背景图片,之后用imsubtract函数运算两个图像中的像素的差值,最后再把相应的差值作为输出图像相应的像素值。从而进行下一步的测量和运算。图4为差分处理后的乔木图像。程序如下。
Image=Imread(C:\\Users\\hp-pc\\Desktop\\叶片.jpg),%读入原始的图像;
Image1=imread(C:\\Users\\hp-pc\\Desktop\\背景图片.jpg),%读入背景图像;
Grayscale=rgb2gray(image),%进行灰度转换;
Grayscale1=rgb2gray(image1);
Subtract=imsubtract(grayscale1,grayscale),%得出差分图像;
Figure,imshow(subract),%显示差分图像。
4.3.3增强图像的对比度
相机拍摄的过程中,必然受到光照强弱的影响,光照的强弱会让灰度的图像范围分布不均匀,从而造成了灰度图像的不规则化。灰度的不规则和不均匀会让计算上面产生误差,为了减少不均匀引起的误差,本文务必对图像进行灰度的调整。选用增强图像的对比度来减少这方面的干扰。图像增强的意义是为了便于理解和分析图像,但是需要根据图像存在的实际问题来进行改善和增强。而不是盲目地调节对比度,通常情况下,图像增强是为了突出图像中需研究的信息,且减少干扰因素,从而达到了提高图像质量的目的。
MATLAB中的Imadjust函数,它可以使图像的对比度得到增强,让图像中的细节更清晰,达到增强图像的目的[5]。从图5可以看出,处理后的图像明显清晰很多。
4.3.4 图像边缘检测
边缘是所提取目标和背景的分界线,提取出边缘才能将目标和背景区分开[6]。乔木的叶片边缘并不规则,并且还存在不连续区域,而边缘也是计算叶面积不稳定的一个因素,所以需要对图像的边缘来进行检测。边缘检测的目的就是为了让操作者可以更加直观地了解到乔木的图像。从实验来看,图像的边缘反映了图像的很多信息,如灰度值得突变区域、颜色的突变区域等信息。它是图像识别过程中1个重要特性。
MATLAB常用到4种边缘检测的方法,Roberts、Sobel、Prewit、Canny。为了更清楚直观的观察到乔木的边缘情况,本文采用以上4种方法进行边缘提取,并进行了对比研究。
图6为采用4种边缘检测后的乔木叶片图像,对比发现4种边缘检测方法中canny的边缘提取较为复杂凌乱和干扰因素过多,并不适合用来进行下一步的处理和检测。相比而言Robert图像边缘提取图像中干扰因素较少,图像叶直观清楚,因此本文选择了Roberts来进行下一步的处理和分析。
4.3.5 图像形态学处理
观察Roberts边缘检测图像,发现虽然检测图像有了大概的轮廓,但是边缘处仍然存在断裂的不完整现象,并没有十分完整和精准地把叶子的轮廓表示出来。所以这里采用了MATLAB中strel和imdilate函数来进行了填补缝隙的操作。
填补分析后,需要来对图像进行填充,本文利用了MATLAB中imfill对叶片内部的孔隙进行了填充。但此时乔木图像边缘仍不光滑,为了得到较为光滑的图像,需要对图像进行平滑的处理。对于上面的分割结果,乔木图像边缘并不光滑,为了得到较为光滑的图像,需要对图像进行平滑的处理。图7为填补边缘和内部缝隙以及进行平滑处理后的乔木叶片图像。
4.3.6 图像中值滤波
乔木叶图像的采集、传输等过程中出现不可避免的干扰因素,会影响结果的准确度,因此对乔木图像进行滤波处理。非线性中值滤波在去除或减少干扰因素的同时不会让图像的边缘模糊[7],这也是中值滤波在实验中得到大范围应用的重要原因。图8为进行中值滤波处理后的乔木叶片图像。
4.4 图像标记
标记是用于确定和标记图像中的目标对象,本文主要标记乔木图片中的像素值,而参照物的像素值可以用MATLAB直接输出。所以调用bwlabe函数来寻找连通的区域,并且用唯一确定的数字来将其分类和标记。
4.5 面积计算
从图9中可以看出叶子像素个数m1=19969。已知参照物固定面积(S0为4 cm2)根据MATLAB计算得出参照物的像素的个数m0=11623。根据测量原理和面积计算公式(1)可得S1=6.872cm2。
5 结果分析
为了检测和验证此方法对乔木叶片计算的正确性,本文又采取了Photoshop2.0软件进行图像处理对同一个乔木叶片进行了测量,共研究了5对乔木叶片,测量结果见表1。
从表1可以看出,用MATLAB处理得到的乔木叶片面积与用Photoshop处理得到的叶片面积结果很接近,计算相对误差的平均值为0.564%。因此,可以利用本文中MATLAB计算叶片面积的方法来测定实际生活中植物叶片的面积。
6 结 论
采用视觉技术和MATLAB图像处理分析法进行了植物叶片(以乔木叶片为例)面积测量研究,详细地介绍了MATLAB实现了面积测量的全过程。通过检测、计算和对比研究,可以得出用MATLAB测量植物叶片叶面积的稳定性和准确性相对较高,可以应用到实际生活中测量植物叶片面积。与传统工具测量相比,具有准确快速的优点,并且这种方法实现了不破坏植物叶片的测量,还能确保测量精度。若能进一步提高研究设备的精度,如获取图像时采用专业相机以及可靠性光源等,则可进一步提高测量的准确度。
参考文献
[1] 陈爱军,李东升,董光辉.一种基于MATLAB的植物叶片参数测量系统[J].中国计量学院学报,2010(4):310-313.
[2]黄文娟.OPPO R9Plus试用体验[J].数码摄影,2016(07):170-173.
[3]马丽,陶佳,杜秋菊.基于图像处理的植物叶面面积计算算法研究[J]. 安徽农业科学, 2011(25):15812-15814.
[4] 王敬轩. 基于图像识别技术的豆科牧草分类研究[D].甘肃农业大学,2010.
[5] 洪艳. 基于叶片轮廓与角点的植物叶片识别研究[D].合肥工业大学,2015.
[6]赵小川.MATLAB图像处理——能力提高与应用案例[M].北京:北京航空航天大学出版社,2014:18-38.
[7]张德丰.数字图像处理(MATLAB版)[M].北京:人民邮电出版社,2009:241.
(责任编辑 周康)