作物叶片面积检测算法的比较分析与MATLAB实现

2019-01-28 05:49陈杰侯同娣泮进明
浙江农业科学 2019年1期
关键词:形态学像素点算子

陈杰,侯同娣,泮进明

(1.盐城工业职业技术学院,江苏 盐城 224005; 2.浙江大学 生物系统工程与食品科学学院,浙江 杭州 310058)

在农作物叶面积测量中,叶形纸称重法、长宽系数法、鲜样称重法、干样称重法、回归方程法等方法的测量都需要将叶片采摘下来,造成叶片损坏。当前使用的叶面积仪器测定方法[1],对于小麦等叶片形状较简单的作物适用,对于复杂形状的叶片则有一定的局限。在图像检测识别中,有研究对基于数学形态学的植物叶片图像分割方法进行了探索[2]。本研究通过基于MATLAB软件的Sobel算子、Prewitt算子、Canny算子、形态学处理等不同算法的比较分析,选择最优方法,再进一步去噪处理,可实现作物叶面积的测量。

1 方法与原理

1.1 Sobel算子

Sobel算子是把图像中的每个像素的上、下、左、右四领域的灰度值加权差,在边缘处达到极值,从而实现边缘检测。其定义:

Sx=[f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)];

Sy=[f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)]。

图像中每个像素点都与下面2个核做卷积,一个核对垂直边缘影响最大,而另一个核对水平边缘影响最大,2个卷积的最大值作为像素点的输出值。该算子的卷积模板:

该算子算法能够产生较好的检测效果,而且对噪声具有平滑抑制作用,但是得到的边缘较粗,可能出现伪边缘,需要根据具体工况合理设计。

1.2 Prewitt算子

Prewitt算子将边缘检测算子模板的大小从2×2扩大到3×3,进行差分算子的计算,将方向差分运算与局部平均相结合,从而减小噪声对图像边缘检测的影响。其表达式:

Sx=[f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)];

Sy=[f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)]。

Prewitt算子卷积模板:G(i,j)=Px+Py。其中,

Px是水平模板,Py是垂直模板。对图像中每个像素点都用这两个模板进行卷积,取最大值作为输出,最终产生边缘图像。Prewitt算法对图像边缘检测效果较粗,背景噪声对算法有效性影响较大,阈值选取不适当会造成边缘点误判等缺陷。

1.3 Canny算子

Canny边缘检测算法是高斯函数的一阶导数,是对信噪比与定位精度之乘积的最优化逼近算子。该算法首先用二维高斯函数的一阶倒数对图像进行平滑,设二维高斯函数:

其梯度矢量:

1019 Clinical analysis of 11 stroke warning syndrome patients treated with alteplase intravenous thrombolysis

其中,σ为高斯滤波器参数,控制平滑程度。对于σ值过小的滤波器,定位精度高,信噪比低;σ值比过大,则会出现信噪比高,定位精度低。因此,高斯滤波器参数σ的大小选择需要根据实际情况确定。

传统的Canny算法采用2×2领域一阶偏导的有限差分来计算平滑后的数据阵列I(x,y)的梯度幅值和梯度方向。其中,x和y方向偏导数的2个阵列Px(i,j)和Py(i,j)分别为

Px(i,j)=(I(i,j+1)-I(i,j)+I(i+1,j+1)-I(i+1,j)/2,

Py(i,j)=(I(i,j)-I(i+1,j)+I(i,j+1)-I(i+1,j+1)/2。

像素的梯度幅值和梯度方向用直角坐标到极坐标的坐标转化公式来计算,用二阶范数来计算梯度幅值:

梯度方向:

θ[i,j]=arctan[Py(i,j)/Pxj(i,j)]。

Canny算子进行图像边缘检测是较为有效的,检测样本标远的噪声和位置是精确的,但树叶检测结果是表面纹理较细,对于进一步开展面积计算没有特别大的价值。

1.4 形态学处理

数学形态学处理的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到对图像分析和识别的目的。数学形态学的应用大大简化了图像数据,保持其基本形状特征,并除去不相干的结构,提高图像的分析处理速度。该方法采用三原色RGB通道线性组合模型rgb’=aR+bG+cB,得到凸显树叶目标特征的二维图像,通过填充、膨胀和腐蚀操作优化二值化图像,可较大程度地抑制噪声并保留细节部分检测出边缘,算法简单,结构元选取灵活。

2 结果与分析

2.1 Sobel算子

由图1可知,本算法得到的叶片边缘清晰,叶片内部效果比较适合作进一步的处理。

图1 Sobel边缘检测

2.2 Prewitt算子

由图2可知,本算法得到的叶片边缘和经脉显示均比较清晰,但叶片内部效果进一步处理比较困难。

图2 Prewitt边缘检测

2.3 Canny算子

由图3可知,本算法只能得到叶片经脉,不能很好地得到内部的整体部分。

图3 Canny边缘检测

2.4 形态学处理

由图4可知,本算法对于试验条件下背景干扰较小的情况下,效果较差。

图4 形态学边缘检测

2.5 图像去噪处理

由图5可知,Sobel算法通过去噪处理后,图片中叶片内部的效果较好,适合进一步开展像素点统计等简易的算法,从而实现叶片面积的快速检测。

图5 Sobel算子处理结果的去噪再处理

3 小结

本文通过4种算法进行了基于MATLAB的图像处理。其中,Sobel算子的处理结果叶片内部效果最好;Prewitt算子的处理结果比较清晰地看到叶片的纹理,叶片内部不够干净;Canny算子的处理结果只能看到叶片的经脉,不能很好地整体体现叶片内部;形态学处理的结果则基本看不到任何效果。

通过比较分析选择Sobel算子的处理结果,再进行图像的去噪处理,从而得到较好的图形处理结果。在该结果分析的基础上,进一步开展像素点的统计,则能较好地计算出作物叶片面积,从而实现作物叶片面积的快速在线无损测量。

猜你喜欢
形态学像素点算子
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
临床检验中血细胞形态学观察与分析
颅内后交通动脉瘤破裂出血的临床特征和形态学的危险因素
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
Domestication or Foreignization:A Cultural Choice
前交通动脉瘤形成和大脑前动脉分叉的几何形态学相关性研究
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
QK空间上的叠加算子