一种利用Matlab测量球形火焰半径的方法技术

技术编号:25046260 阅读:22 留言:0更新日期:2020-07-29 05:35
本发明专利技术公开了一种利用Matlab测量球形火焰半径的方法,该方法实现了准确、快速、批量的处理球形火焰图片。首先确定图片标尺大小,然后利用imread函数读取背景图片和目标图片;rgb2gray函数将两张彩色图像转为灰度图像;imsubtract函数作图像减法;graythresh函数找到基准阈值;im2bw函数将灰度图像转为二值化图像;medfilt2函数消除图像斑点噪声;imdilate函数实现图像膨胀;imfill函数实现空洞区域填补;imerode函数进行图像边界腐蚀;canny边缘检测算法获得球形火焰边界;for函数筛选处边界线最外侧点;nlinfit函数进行多元非线性回归,求得拟合圆半径;利用for循环函数批量处理目标图片,并利用xlswrite函数将批量处理得到的目标图片的拟合圆半径写入excel表中。

【技术实现步骤摘要】
一种利用Matlab测量球形火焰半径的方法
本专利技术属于层流火焰研究
,具体为一种利用Matlab测量球形火焰半径的方法。
技术介绍
了解可燃混合气的层流预混火焰燃烧特性对于发动机的研发有重要意义。火焰定义为一个以亚音速、自维持传播的局部燃烧区域。火焰也称为燃烧波,而以亚音速传播的不连续的燃烧波称为缓燃波,为简化分析,通常用一维平面预混火焰来研究缓燃波。层流火焰速度定义为一维平面预混火焰的火焰面相对于未燃混合气的运动速度,是混合气的基本参数,其大小取决于当量比、压力和温度。在标准条件下(即大气压和初始温度298k)下的燃烧速度对于描述给定燃料的燃烧特性、理解化学反应动力学和验证模型都是非常重要的。通常用于测量层流燃烧速度的方法包括弯曲(Bunsen火焰)、拉伸(对冲火焰)或球形火焰等,这里我们研究球形火焰的层流燃烧速度。研究球形火焰的实验装置通常为定容或定压燃烧室,静止的可燃混合气单点点火后将形成球形扩散火焰。层流燃烧速度的计算过程为:①根据火焰图片计算出拉伸火焰传播速度;②选取合适的数据范围并对数据进行光顺;③利用非线性公式计算出无拉伸火焰传播速度;④根据密度比求出层流火焰传播速度。因此,计算层流火焰传播速度必须首先求出拉伸火焰传播速度。首先利用高速相机的纹影技术或阴影技术可拍摄到球形火焰的发展过程,进而利用得到的球形火焰图片计算出拉伸火焰传播速度。层流火焰速度的计算过程:选出有效的火焰图片,量取图片的球形火焰半径,进而可计算出已燃气拉伸火焰传播速度,即:以往量取球形火焰半径的方法是利用Photoshop等图片处理软件手动测量球形火焰半径。具体操作过程如下:选取某次实验的两张图片,图17(a)是初始火核形成,图17(b)是初始火核逐渐发展形成的球形火焰。根据图17(a)中的初始火核大致确定球形火焰中心点的位置坐标(547,473)(中心点位置的偏差不会影响后期拉伸火焰传播速度的值,因为拉伸火焰传播速度是根据微分计算的),图17(b)为量取火焰半径的示意图,当前位置y方向球形火焰上边界的坐标为(547,332)。因此根据图片中目标物的实际尺寸与图片像素大小的比例尺,可计算出实际球形火焰半径的大小。利用此方法,可得到所有有效范围内图片球形火焰半径的大小。某时刻t,经过dt时间后球形火焰半径的变化值可根据相邻两张图片中球形火焰半径的差值得到,进而利用微分公式(1)可得到拉伸火焰传播速度随时间的变化曲线。图18是利用某次实验工况所得纹影照片计算的拉伸火焰传播速度随时间的变化趋势图,其中空心点是利用公式(1)计算所得,实线是对这些点进行FFT光顺后所得。可以发现:通过微分计算的速度点存在分层现象,从理论上来说,这是不应该存在的,因为实际球形火焰传播是均匀变化的,拉伸火焰传播速度不存在这种震荡突变。这种现象的原因主要是图片放大至像素点级别后会发现实际的火焰边界是有厚度的并且厚度值很难确定,这就造成边界像素点坐标的选取具有随机性。而由于这种随机性导致的误差一般为1个像素点大小(即火焰半径变化值的误差为1个像素点),而火焰后期稳态传播时其半径的变化值为4个像素点左右,这就导致微分算出来的速度波动在±25%左右,如图18所示。由于这些空心点随时间的变化是无规则的,我们无法得到实际球形火焰传播趋势的有效信息。因此,这类数据通常的处理方法是将这些数据点进行FFT光顺拟合,如图18中实线所示,而我们最终需要的是光顺后所得到的速度数据。通过以上分析可以发现,以往的球形火焰半径量取方法存在工作量大、费时费力等问题(通常一组工况实验图片在200张左右,手动测量约需要1个小时),而且手动量取的半径误差较大,导致计算的速度波动较大,必须通过FFT拟合光顺后才能得可用的速度数据。
技术实现思路
本专利技术的目的在于提供一种利用Matlab测量球形火焰半径的方法,以提高实验数据处理速度,同时提高数据的准确性。Matlab作为一个强大的图像处理软件,可以实现图像的边缘提取,利用该功能可以实现图片的快速批量处理。为实现上述目的,本专利技术采用如下技术方案来实现的:一种利用Matlab测量球形火焰半径的方法,包括以下步骤:1)将背景图片和目标图片导入Matlab程序中;2)初步提取球形火焰边缘轮廓有效信息,包括:a)确定图片标尺;b)使用imread语句读取背景图片和目标图片;c)利用Matlab中的图像处理函数rgb2gray将彩色的背景图片和目标图片转换为灰度图像;d)利用imsubtract函数作图像减法,目标图片减去背景图片;3)确定球形火焰的精细化边缘轮廓和边界位置信息,包括:a)利用graythresh函数即最大类间方差法找到基准阈值,作为接下来调整阈值的参考基准;b)利用im2bw函数将灰度图像转化为二值化图像,根据graythresh函数得到的基准阈值来手动调整阈值大小,在保留更多有效信息的同时降低图像噪声;c)利用中值滤波器medfilt2函数消除图像中的噪声,通过不断调整medfilt2函数中阈值来消除噪声,尤其是斑点噪声;d)利用imdilate函数进行图像膨胀,实现与物体接触的所有背景点合并到该物体中,使边界向外部扩张;e)利用imfill函数将填补膨胀后图像中的所有的空洞区域;f)通过imerode函数对填补后的图像边界进行腐蚀处理,以得到精细化的轮廓;g)Canny边缘检测算法获取经腐蚀处理的图像中目标物的边界线,并将边界像素点的位置信息存储在数组中;4)拟合边界有效信息点得到球形火焰拟合半径,包括:a)利用for循环函数筛选出边界线的最外侧点,使得拟合图形更加准确;b)利用inline语句定义圆的函数即0=x2+y2+a·x+b·y+c,然后通过nlinfit函数对这些筛选出来的有效信息点进行多元非线性回归,求得a、b、c的值,进而求得球形火焰拟合半径本专利技术进一步的改进在于,所属步骤1具体过程包括:a)利用高速摄像机将球形火焰发展过程记录下来,然后导出背景图片和球形火焰图片;b)将背景图片和球形火焰图片即目标图片加载至Matlab球形火焰半径处理程序的路径中。本专利技术进一步的改进在于,该方法还包括:5)球形火焰图片半径测量的批量处理,包括:a)首先通过步骤1)至步骤4)任意处理一张目标图片,不断调整im2bw函数的阈值和medfilt2函数的阈值,直至得到与球形火焰轮廓拟合较好的拟合圆;b)保持im2bw函数和medfilt函数阈值不变,利用for循环函数批量处理目标图片;6)利用xlswrite语句将得到的所有球形火焰图片的半径值写入excel表中。相较于现有技术,本专利技术至少具有如下有益的技术效果:本专利技术通过在Matlab软件上编写程序可以显著提高数据处理速度和数据的准确性。Matlab作为商业数学软件,具有强大的图像处理和数据处理功能,代码运行时间极短,实际测试结果表明:本发本文档来自技高网
...

【技术保护点】
1.一种利用Matlab测量球形火焰半径的方法,其特征在于,包括以下步骤:/n1)将背景图片和目标图片导入Matlab程序中;/n2)初步提取球形火焰边缘轮廓有效信息,包括:/na)确定图片标尺;/nb)使用imread语句读取背景图片和目标图片;/nc)利用Matlab中的图像处理函数rgb2gray将彩色的背景图片和目标图片转换为灰度图像;/nd)利用imsubtract函数作图像减法,目标图片减去背景图片;/n3)确定球形火焰的精细化边缘轮廓和边界位置信息,包括:/na)利用graythresh函数即最大类间方差法找到基准阈值,作为接下来调整阈值的参考基准;/nb)利用im2bw函数将灰度图像转化为二值化图像,根据graythresh函数得到的基准阈值来手动调整阈值大小,在保留更多有效信息的同时降低图像噪声;/nc)利用中值滤波器medfilt2函数消除图像中的噪声,通过不断调整medfilt2函数中阈值来消除噪声,尤其是斑点噪声;/nd)利用imdilate函数进行图像膨胀,实现与物体接触的所有背景点合并到该物体中,使边界向外部扩张;/ne)利用imfill函数将填补膨胀后图像中的所有的空洞区域;/nf)通过imerode函数对填补后的图像边界进行腐蚀处理,以得到精细化的轮廓;/ng)Canny边缘检测算法获取经腐蚀处理的图像中目标物的边界线,并将边界像素点的位置信息存储在数组中;/n4)拟合边界有效信息点得到球形火焰拟合半径,包括:/na)利用for循环函数筛选出边界线的最外侧点,使得拟合图形更加准确;/nb)利用inline语句定义圆的函数即0=x...

【技术特征摘要】
1.一种利用Matlab测量球形火焰半径的方法,其特征在于,包括以下步骤:
1)将背景图片和目标图片导入Matlab程序中;
2)初步提取球形火焰边缘轮廓有效信息,包括:
a)确定图片标尺;
b)使用imread语句读取背景图片和目标图片;
c)利用Matlab中的图像处理函数rgb2gray将彩色的背景图片和目标图片转换为灰度图像;
d)利用imsubtract函数作图像减法,目标图片减去背景图片;
3)确定球形火焰的精细化边缘轮廓和边界位置信息,包括:
a)利用graythresh函数即最大类间方差法找到基准阈值,作为接下来调整阈值的参考基准;
b)利用im2bw函数将灰度图像转化为二值化图像,根据graythresh函数得到的基准阈值来手动调整阈值大小,在保留更多有效信息的同时降低图像噪声;
c)利用中值滤波器medfilt2函数消除图像中的噪声,通过不断调整medfilt2函数中阈值来消除噪声,尤其是斑点噪声;
d)利用imdilate函数进行图像膨胀,实现与物体接触的所有背景点合并到该物体中,使边界向外部扩张;
e)利用imfill函数将填补膨胀后图像中的所有的空洞区域;
f)通过imerode函数对填补后的图像边界进行腐蚀处理,以得到精细化的轮廓;
g)Canny边缘检测算法获取经腐蚀处理的图像...

【专利技术属性】
技术研发人员:胡二江高群飞李孝天黄佐华
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1