基于Matlab的定容燃烧弹喷雾图像处理

喷雾宏观特性参数获取见:https://blog.csdn.net/yusuhuayu/article/details/117266949

1. 喷雾图像获取

高速相机

2. 喷雾图像处理

目的:

  • 获取喷雾宏观特性
    • 喷雾锥角
    • 喷雾贯穿距
    • 喷雾面积
    • 油束对称性

处理内容:

去除背景、降噪去除飞溅液滴、分割油束区域

处理方法:

  • 图像作差I=imsubtract(A,B),获得纯净的背景,同时去除一部分彩色噪点
  • 图像增强,增强油束与背景的对比度,尤其是油束边缘。
    • 空域增强(imhist()获取直方图)
      • 灰度变换增强
      • 直方图增强
        • 直方图均衡化:J=histeq(I,n)
        • 直方图规定化: hgram=ones(1,256); J=histeq(I);
    • 频域增强:先从空域变换为频域,处理结束再反变换
      • Radon变换和反变换radon()&iradon()
      • 傅里叶变换和反变换fft()&ifft()
      • 离散余弦变换和反变换
      • Hadamard变换、Hough变换(图像识别几何形状)以及图像的小波变换等

处理喷雾图像可以通过对比度线性展宽,增加特定信息的灰度值范围,降低其他信息的灰度值,来提高对比度。
J = imadjust(I,[low_in high_in],[low_out high_out],gamma)

  • [low_in high_in],[low_out high_out]:输入、输出图像的对比度限制
    • 可以利用stretchlim()自动计算灰度图的最佳变换区间
  • gamma:输入和输出值关系的曲线形状
    • =1(默认),线性映射
    • >1,映射被加权到更低(暗)的输出值
    • <1,映射被加权到更高(亮)的输出值
    • 1×3向量

下图展示了调整对比度后图像、直方图与二值图的对比,可见油束边缘的对比度得到提高,防止后续过小计算喷雾锥角及面积。
对比度线性展宽
代码如下:

% 对比度线性展宽
[X1,map1] = imread('E:\MATLAB\pics\1.tif',1);
I=imrotate(X1,90);
J=uint8(double(I)/170*255);
K = imadjust(I,stretchlim(I),[]);       		%自动计算灰度图的最佳变换区间
figure(1);
subplot(331);imshow(I);title('原图I');
subplot(332);imshow(J);title('手动调整J');
subplot(333);imshow(K);title('自动计算K');
subplot(334);imhist(I);                 		%显示直方图
subplot(335);imhist(J);
subplot(336);imhist(K);
subplot(337);imshow(im2bw(I));          		%显示二值图
subplot(338);imshow(im2bw(J));
subplot(339);imshow(im2bw(K));
  • 降噪
    图像增强的过程中会增加噪声,常用滤波方式:
    • 均值滤波imfilter();:用其像素点周围像素的平均值代替元像素值,但会过滤掉图像的边缘信息
      借助函数fspecial()生成3×3二维均值滤波器模板A=fspecial(average,3)
    • 中值滤波medfilt2():能很好地保留图像边缘,适合去除椒盐噪声
    • 自适应滤波wiener2():使用像素级自适应低通 Wiener 滤波器对灰度图像进行滤波
      降噪对比

代码如下:

K=rgb2gray(K);
K1=imnoise(K,'salt & pepper',0.1);          %加入椒盐噪声
a3=fspecial('average',3);                   %生成3×3二维均值滤波器模板
A3=imfilter(double(K1),a3,'conv');          % 中值滤波
M3 = medfilt2(K1,[3 3]);                    % 均值滤波
W3 = wiener2(K,[3 3]);
figure(2);
subplot(411);imshow(uint8(K1));title('加入椒盐噪声');
subplot(412);imshow(uint8(A3));title('中值滤波');
subplot(413);imshow(uint8(M3));title('均值滤波');
subplot(414);imshow(uint8(W3));title('自适应滤波');
  • 分割油束
    • 基于灰度阈值
      • 全局阈值分割法
      • OTSU阈值分割(大津法、最大类间方差法)
        不受图像亮度和对比度的影响,按图像的灰度特性,将图像分成背景和前景两部分。简单有效、应用广泛,但对噪声敏感。
        OTSU
figure(3);
T = graythresh(K);    %大津法自动获取阈值
T1 = graythresh(K1); 
OTSU = im2bw(K,T);
OTSU1 = im2bw(K1,T1);
subplot(411);imshow((K));title('原灰度图');
subplot(412);imshow(im2bw(K));title('原图二值化');
subplot(413);imshow(OTSU1);title('OTSU-椒盐噪声');
subplot(414);imshow(OTSU);title('OTSU-降噪后');
  • 迭代式國值分割
    迭代法
T0=0.01 ;
T1=(min(K(:))+max(K(:)))/2 ;
r1=find(K>T1) ; r2=find(K<=T1) ;
T2=(mean(K(r1))+mean(K(r2)))/2 ;
while abs(T2-T1)>T0
T1=T2 ;
r1=find(K>T1) ;
r2=find(K<=T1) ;
T2=(mean(K(r1)) + mean(K(r2)))/2 ;
end
figure(4);
subplot(311);imshow((K));title('原灰度图');
subplot(312);imshow(OTSU);title('OTSU-降噪后');
subplot(313);imshow(im2bw(K,T2/255));title('迭代法');
  • 基于区域
  • 基于形态学分水岭法
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值