基于matlab的发动机喷雾图像筛选程序设计
2018-06-06曹福来刘怡杉张亚赠楚慧闯娄金辉
曹福来 刘怡杉 张亚赠 楚慧闯 娄金辉
摘 要:燃油雾化的好坏对发动机经济性、动力性、排放性等有着重要影响,而在燃油喷雾试验中会得到的大量喷雾图像,其中能满足要求反应雾化真实情况的少之又少。笔者利用MATLAB编写辅助程序,采用灰度直方图、平均灰度、拉普拉斯算子、graythresh全局阈值、标准偏差等多种算法,结合GUI用户界面来实现喷雾图像自动筛选,避免人工的费时费力以及判别误差。
关键词:喷雾实验;图像处理;MATLAB编程;GUI界面
中图分类号:TP391.41 文献标志码:A 文章编号:2095-2945(2018)15-0065-03
Abstract: The quality of fuel atomization has an important impact on engine economy, power performance, emissions and so on. However, a large number of spray images will be obtained in the fuel spray test, and few of them can meet the requirements of the actual conditions of reaction atomization. The author uses MATLAB to write auxiliary program, adopts many algorithms such as grayscale histogram, average gray scale, Laplace Operator, graythresh global threshold, standard deviation and so on, and with GUI user interface, intends to realize automatic screening of spray image, so as to avoid manual time and effort as well as discrimination error.
Keywords: spray experiment; image processing; MATLAB programming; GUI interface
1 概述
發动机燃油雾化的好坏对发动机经济性、动力性、排放性等有着重要影响。通过发动机喷雾试验我们会得到大量的燃油喷雾图像,而其中能真实反映燃油雾化情况的图像少之又少,通过人工筛选这些图像不仅需要工作人员花费大量时间而且由于人与人之间判断标准的不同存在偏差。通过对喷雾图像存在的问题进行研究找出适当算法并通过MATLAB/GUI平台来编写筛选程序,可以实现喷雾图像的自动化筛选,从而大大提高效率。
2 喷雾图像筛选处理算法
2.1 喷雾图像曝光过多或不足处理算法
在发动机燃油喷雾实验中实验人员的配合默契程度很大程度上决定了喷雾图像质量的好坏,一旦出现手压泵与相机拍摄不同步就会产生大量的曝光过度或者曝光不足的图像。曝光过度的图像整体亮度过高,曝光不足的图像整体亮度过低,亮度过高或过低都会严重影响对喷雾粒子的研究统计。
灰度直方图是图像灰度级别分布的函数,反映了图像灰度值大小出现的频率,是一种最基本的统计特性,是对图像整体效果进行描述的最简单最实用的工具。一般情况下,曝光过度的喷雾图像整体亮度较亮,整体的灰度值较大;曝光不足的喷雾图像亮度较暗,整体的灰度值较小;曝光合理的喷雾图像亮度比较适中,整体的灰度值居中[1]。MATLAB自带有大量的图像处理函数,图像的灰度直方图可以调用 imhist函数获得,其语法格式为:
I=imhist(a,b)
其中,a是灰度的输入图像,b是指定的灰度级数目。
经大量统计分析得知,一张拍摄效果较好的发动机喷雾图像灰度直方图分布集中在中间的[60,130]区间,并在该区间有且只有一个峰值;而曝光不足的喷雾图像灰度直方图分布集中在后端[0,60]区间,曝光过度图像灰度直方图分布集中基本都集中在前端[130,255]区间。通过判断喷雾图像灰度直方图峰值所在的区间来判断图像是否存在曝光过度和曝光不足的图像。
MATLAB自带的findpeaks函数可以用来得到图像的峰值数目以及峰值大小,其语法调用格式为:
[pks,locs] = findpeaks(data)
其中,pks 对应峰值,locs 对应峰值位数,如果喷雾图像灰度pks值在区间[0,60],则该图像存在曝光不足;如果喷雾图像pks值在区间[130,255],则该图像存在曝光过度的问题。
2.2 喷雾图像亮度不均处理算法
在燃油喷雾实验中常采用速摄影法拍摄喷雾图像,但由于空气中的不明粒子以及喷雾液滴和背景板等的影响会使光线产生折射以及反射现象,这样会造成喷雾图像产生亮度不均的现象,而这样的喷雾图像会对喷雾特性的研究产生不良影响。
假设A=(aij)为大小为MXN的一个灰度图像,规定mean(A)为A的灰度平均值,则计算公式如下:
AGV,即平均灰度值是average gray value的缩写,反映了图像整体的亮度。LAGV,即局部平均灰度值是local average gray value的缩写,反映了图像部分的亮度[2]。当喷雾图像整体的平均灰度值与局部的平均灰度值相差比较大时就反映了该图像出现了亮度不均,用Tag表示图像整体与局部的平均灰度之差的绝对值,则通过设定一个合理的阈值,当求得的Tag大于阈值时则系统认为图像存在亮度不均的现象并筛选掉该图像。在MATLAB函数库中可以调用mean函数用来得到图像平均灰度值,该函数的其语法格式为:
T=mean(A)
若A是一个向量,则mean(A)返回A中元素的平均值。喷雾图像的平均灰度值可以通过Avg=mean(mean(img))来得到。
在计算喷雾图像局部平均灰度值时需要将图像进行划分,通常是按照水平方向、竖直方向、45度方向、135度方向和中心与外围这五个方向来划分,我们结合喷雾图像特点采用等分的原则把喷雾图像划分为2×2、3×3、4×4、n×n(n>4)等等,考虑到计算机处理图像的时间随着图像划分的数目增多而变长,并且随着图像划分的数目增多喷雾粒子刚好在边界上被划分的可能性越大,这样会使喷雾粒子划分到不同区域而且粒子数目增加直径变小,导致测量结果准确性变差,相比之下3×3的划分计算机运行时间短准确性也较高,故本文中喷雾图像采用3×3的划分方式。
通过大量的计算统计,存在光照不均的喷雾图像平均灰度与局部平均灰度之差绝对值最大值在[22,46]区间;喷雾效果较好的图像平均灰度与局部平均灰度之差绝对值最大值在[5,20]区间,本论文人工选择的阈值为21[2]。当喷雾图像整体的平均灰度值与局部的平均灰度值相差大于21时则认为该喷雾图像具有光照不均的现象,筛选掉该图像,否则认为该图像符合要求等待进行下一步筛选。
2.3 拖尾模糊图像处理算法
在大量的喷雾图像中有一部分图像存在拖尾现象,拖尾现象产生的原因是单位时间内画面帧频率过低,也就是实验中的1/8500s曝光时间相对于高速运动的喷雾粒子来说时间太长[2]。
拉普拉斯算子各向同性微分算子,工程数学中常用的一种积分变换,是n维欧几里德空间中的各向同性的二阶微分算子,定义为梯度(?荦f)的散度(?荦·f),与边缘检测的方向无关,具有旋转不变性。拉普拉斯算子也可以推广为定义在黎曼流形上的椭圆型算子,称为拉普拉斯-贝尔特拉米算子。连续二元函数f(x,y)的拉普拉斯运算定义如:
由于清晰的图像其本身细节反差和纹理变化比较明显,相应的像素周围灰度值变化比模糊图像的值大,根据这一理论定义图像清晰度为图像中每一像素在3×3的邻域内的8邻域微分绝对值之和[3],其计算公式如下所示:
经过大量的人工统计,一般情况下拖尾模糊图像的Ls值分布区间为[0.3260,0.3860],清晰的喷雾图像其Ls值分布区间为[0.3940,0.4730]。通过对大量喷雾图像的Ls值统计,人为设定合理的清晰度阈值LS,当喷雾图像计算得到的Ls值小于设定的阈值时筛选系统判定该图像存在拖尾模糊的问题而筛掉该图像,否则暂时保留下来等待接下来的筛选。
2.4 图像中少粒子或无粒子处理算法
在喷雾实验中造成喷雾图像中没有粒子或者粒子很少的原因有两个,第一是由于手压泵的喷嘴轴线没有与相机镜头位于同一平面;第二种原因是两个实验员没有配合得当,负责手压泵的实验员与负责相机快门的实验员没有达到同步操作,高压下粒子的运动速度很快,配合不当导致粒子没有或者少部分到达相机的视角[2],这两种错误操作得到的喷雾图像无法反应喷雾的真实情况。
用graythresh函数来处理喷雾图像,处理的速度比较快,并且处理效果比较理想,经过im2bw函数二值化后的亮点就是需要统计的粒子,这些亮点的统计可以通过Matlab中函数库中的bwlabel函数来实现,其语法调用格式为:
[L,NUM]=bwlabel(W,n)
其中W为经过处理得到的二值图,L为表示与W大小相同的矩阵,NUM为目标物体数量。n的值可以为4或者8,当n=4时表示四连通寻找,紧邻位置是对应像素位置的上、下、左、右;当n=8时表示八连通寻找,紧邻位置是对应位置的上、下、左、右、左上、右上、左下、右下,这里我们默认为8连通寻找。
经过大量的统计,一张好的喷雾图像粒子数目在5000以上,通过设定合适的粒子数目阈值来筛去无粒子或少粒子的喷雾图像。
2.5 图像粒子分布不均处理算法
喷雾粒子分布的均匀性是判断喷雾图像拍摄效果好坏的重要指标。喷雾图像粒子分布均匀性的评判需要三个步骤,第一,采用不同的划分方法对喷雾图像进行区域划分;第二,统计划分后每个區域内的粒子数目;第三,建立喷雾图像粒子的标准偏差[4]。关于喷雾图像的划分我们采用3×3的等分方式,喷雾粒子统计我们先用graythresh-全局图像阈值将图像转化为二值图然后通过函数bwlabel来统计粒子数目,这些在前面已经介绍,接下来主要介绍喷雾粒子标准差的建立。
喷雾图像被划分为9个区域,每个区域内的喷雾粒子就是一个样本数据,而图像全部的喷雾粒子就成为一个样本集合,每个区域喷雾粒子数目的变化就反映了图像不同区域喷雾粒子分布情况。标准差又常称均方差,是常用的一种反应数据离散程度工具,平均数相同的两组数据,标准差未必相同。标准差或者方差越小,特征点分布就越均。在MATLAB函数库中可调用std(X,a)函数来得到喷雾图像每个区域粒子数目的标准偏差。该函数其调用格式如下:
s=std(X)
其中X是矢量,返回标准差,此时除以的是N-1,结果是各样本偏差无偏估计的平方根。需要注意的是此函数命令不能直接对矩阵求整体的标准差,只能返回每行或者每列元素的标准偏差,默认情况下返回的是每列元素的标准偏差。通过大量统计分析,粒子分布比较均匀的喷雾图像其标准偏差分布在[30 150]之间,粒子分布越不均的图像其标准偏差就越大,通过选取合适的标准差阈值来筛除粒子分布不均的图像。
3 喷雾图像筛选系统GUI的实现
在MATLAB中,既可以通过M文件又可以通过图形用户界面开发工具(GUIDE)来创建GUI,后者能将根据设计好的GUI界面自动快速生成相应的M文件。MATLAB/GUI可以根据用户需求设计软件的使用界面。为了使用软件快速筛选发动机喷雾图像,需要建立一个简洁明了的软件界面。本文根据喷雾图像筛选处理算法设计了喷雾图像筛选系统,其界面如图3:
4 结束语
针对喷雾图像中出现的曝光过度、曝光不足、亮度不均、拖尾模糊、无粒子或少粒子、粒子分布不均等问题,通过采用灰度直方图、平均灰度、拉普拉斯算子、graythresh全局阈值、标准偏差等多种算法来对喷雾图像进行筛选,根据设定的算法结合GUI用户界面对发动机喷雾图像筛选系统进行设计,大大缩短了喷雾图像筛选周期,对研究发动机喷雾特性产生积极的影响。
参考文献:
[1]徐海洋.发动机燃油喷雾图像筛选系统的设计和实现[D].西安:长安大学,2015.
[2]曹福来.发动机燃油喷雾图像筛选及处理方法的分析研究[D].西安:长安大学,2015.
[3]吴海波,刘钊.基于拉普拉斯算子的彩色图像锐化处理[J].电脑开发与应用,2008(9):27-28.
[4]朱海峰,赵春晖.图像特征点分布均匀性的评价方法[J].大庆师范学院学报,2010,5.