喷雾宏观特性参数获取(喷雾贯穿距离、喷雾锥角、喷雾面积)

文中出现的程序只针对某一张图片,未将批处理程序完整贴出
喷雾图像处理介绍见:https://blog.csdn.net/yusuhuayu/article/details/115458959

根据实际需求,在获取宏观参数之前根据所获取的图像进行处理

  1. 图像减去背景,去除喷嘴及其他背景干扰imsubtract()

    I0=imread('0.tif');                       %读取背景图
    I1=imread('1.tif');                      %读取喷雾图
    I=imsubtract(I1,I0);                    %减去背景
    
  2. 裁剪图片,得到合适的尺寸imcrop()
    为方便后续计算,此处选取的图片起点纵坐标与喷嘴纵坐标一致。

    rect=[151 42 200 359];                  %[起点坐标 宽度 长度]
    I = imcrop(I,rect);                     %裁剪图片
    
  3. 提高精度,调整图片深度(如果原图像为RGB图像,需要先获取灰度图rgb2gray())。
    我的原图像为12位的灰度图,为了方便后期处理,转换为8位。方法有如下两种,原理如下:

    • 获取图片最大亮度值,作为8位灰度图的最大亮度,其余等比例转换。此方法可以较好地保留图像的细节,但为了后期的边缘检测还需要提高亮度,调整对比度。
    • 直接使用uint8()函数,大于255的值设置为255,小于0的值设置为0,其余不变。对于喷雾图像,此方法变相提高了整体的亮度,虽然损失了较多的图像细节,但有利于后期进行边缘检测。
      两种方法对比图如下:

      代码如下,按需采用:
    I=double(I);                            %提高计算精度
    m=max(max(I));
    img=uint8((I.*(256/(m+1))));          %调整图片到8位
    R=uint8(I);
    
  4. 获取二值图并进行边缘检测
    为方便处理,直接采用自动获取阈值的方式,并通过形态学处理,填补二值图中出现的空洞。

    代码如下:

    T = graythresh(R);                      %自动获取阈值 大津法
    OTSU = im2bw(R,T);                      %获取二值图OTSU1=imfill(OTSU,'hole');              %填充图像中的空洞区域
    se=strel('disk',5);                     %创建半径为5的圆盘型结构
    OTSU1=imclose(OTSU1,se);                %形态学闭运算,先膨胀后腐蚀
    

未经形态学处理进行边缘检测,效果较差,除喷雾的外部轮廓以外,空洞的轮廓也被检测出来。形态学处理后,只保留喷雾外部轮廓,且采用canny算子,效果较好。对比如下图:

获取宏观参数

  • 喷雾贯穿距离(Spray Penetration)
    贯穿距有两种计算方式:喷嘴到喷雾最末端的距离;喷嘴到喷嘴所在铅垂线与喷雾前锋面交点的距离。本文采用第一种。
    获取图像边缘后,只需要找到喷雾最末端的纵坐标即可。

    [hs,ls]=find(canny==1);                 %返回边界像素点所在的行数列数
    pl=max(hs);
    P=pl/k;                                    %喷雾贯穿距,k为像素数与实际距离的比值
    
  • 喷雾锥角(Spray Angle)
    从喷嘴出口沿着喷雾边界到S/2 处的两条切线所形成的角度。(喷雾锥角有多种表示方法,此处非最优)

    yhalf=idivide(int16(pl),2,'fix');             %贯穿距一半处的纵坐标,截断取整
    x=find(canny(yhalf,:)==1);                      %贯穿距一半处边界横坐标
    x=[min(x),max(x)];
    alpha=atan(abs((x0-x)/double((yhalf))));       %x0为喷嘴横坐标
    Angle=rad2deg(sum(alpha));
    
  • 喷雾面积(Spray Area)
    Area=sum(OTSU(:))*((1/k)^2);                 %计算像素数。并进行换算
    

通过亮度与对比度的调整(ps或matlab),可以使处理后的二值图更接近原始的喷雾图像,减小误差。
手动测量与程序计算结果对比(获取二值图前调整了亮度):

基于Matlab的定容燃烧弹喷雾宏观特性参数获取相关推荐

  1. 基于Matlab的定容燃烧弹纹影喷雾图像处理

    基于Matlab的定容燃烧弹纹影喷雾图像处理 纹影图像处理 纹影法原理 引起密度变化的因素 产生的问题 解决思路 不同标准差计算方法 局部标准差 时序标准差 不同标准差处理图像的对比 降噪处理 孤立点 ...

  2. MATLAB异步风电机组,基于MATLAB的定速风电机组仿真

    <基于MATLAB的定速风电机组仿真>由会员分享,可在线阅读,更多相关<基于MATLAB的定速风电机组仿真(22页珍藏版)>请在人人文库网上搜索. 1.基于MATLAB的定速风 ...

  3. 用matlab画旋转抛物面_基于MATLAB的旋转抛物面天线的几种特性的仿真

    [实例简介] 这是一篇关于基于MATLAB的旋转抛物面天线的几种特性的仿真的论文,对旋转抛物面天线的方向图.利用系数.口径截获效率和增益因子及馈源方向函数等特性进行了仿真 第5期 顾洪军,等:基于 M ...

  4. 基于Matlab/Simulink的气液缓冲器动态特性仿真与分析

    1.内容简介 应用Matlab软件对气液缓冲器的冲击工况进行了仿真计算,并对比试验数据找出了影响气液缓冲器动态特性的关键因素,可为气液缓冲器各关键参数与关键结构的设计提供依据. 2.内容说明 气液缓冲 ...

  5. 基于matlab的多容对象液位控制的设计和仿真 毕业论文答辩ppt,液位控制系统设计与仿真.doc...

    摘要:随着过程控制技术的不断成熟.生产线的不断更新以及生产设备的成本日益降低,因此,工业生产对过程技术的要求愈来愈高,所以就需要研究和开发出更加先进的控制策略.液位系统不仅在化学工程技术发挥作用,而且 ...

  6. matlab 非线性电感,基于Matlab/Simulink利用动态和静态电感等磁参数建立了一种开关磁阻电机的非线性磁参数模型...

    基于动.静态电感特性的开关磁阻电机非线性磁参数模型 蒋涛 (北京航空航天大学,北京100191) 摘要:基于Matlab/Simulink.利用动态和静态电感等磁参数建立了一种开关磁阻电机的非线性磁参 ...

  7. bouc wen matlab,基于Matlab磁流变阻尼器Bouc-Wen模型的参数识别

    2018年 3月 第 46卷 第 5期 机床与液压 MACHINE TO0L& HYDRAULICS Mat.2018 Vo1.46 No.5 DOI:10.3969/j.issn.1001- ...

  8. 基于matlab/simulink环境下空调房间仿真模型的建立,基于Matlab_Simulink环境下空调房间仿真模型的建立.pdf...

    第20卷第2期大连水产学院学报Vol . 20 No. 2 2 0 0 5年6月JOURNAL OF DAL I AN FISHER IES UN I VERSITYJun. 2 0 0 5 文章编号 ...

  9. 基于Matlab的汽车偏离车道报警系统

    MATLAB车道线预警系统 一.背景 为提高汽车的主动安全性并克服现有的汽车偏离车道报警系统所存在的结构复杂和成本高等缺点,文章设计了 一 种基于Matlab的汽车偏离车道报警系统,利用摄像头获取车道 ...

最新文章

  1. Poj 2195 Going Home
  2. PHP.ini 中的错误提示
  3. 【每天一道算法题】Numeric Keypad
  4. 【bzoj2705】[SDOI2012]Longge的问题 欧拉函数
  5. 工业物联网的应用领域和方向
  6. python中plot和bar要求的格式不一样_在Python中matplotlib中匹配的图形大小,包括和不包含make_axes_locatable- divider colorbars...
  7. 为什么C语言还是被很多人说成过时了?
  8. postgresql数据库的 to_date 和 to_timestamp 将 字符串转换为时间格式
  9. virtualbox中给CentOS根分区扩容的方法
  10. java4选择结构 二
  11. python一元线性回归算法_Python机器学习(二):线性回归算法
  12. Zookeeper+Curator 分布式锁
  13. BZOJ1036[ZJOI2008] 树的统计
  14. 课程设计:89C51单片机实现六位密码锁
  15. MD5加密算法与SHA加密算法
  16. 从面试官的角度聊聊培训班对程序员的帮助,同时给培训班出身的程序员一些建议...
  17. 实现高德地图签到签退(uniapp)
  18. Redis - RedisClient
  19. Android 图像处理软件
  20. 数据结构与算法:单调栈(monotonic stack)

热门文章

  1. Android:代码撸彩妆 2(大眼,瘦脸,大长腿)
  2. docker容器以及Java项目和当前北京时间不一致的问题
  3. vscode修改“前进”和“后退”快捷键,“放大缩小”窗口
  4. 国内十大婴幼儿洗护品牌排行榜
  5. 动手刷LeetCode-字符串最长公前缀
  6. 教你如何操作,批量合并视频
  7. echarts 条形图柱间距设置方法分享
  8. dicom文件如何转换,通过RadAntDICOMViewer
  9. 一款游戏资源解包工具的开发始末
  10. RAID磁盘阵列中LUN的理解