- 实验目标
基于图像特征的火灾检测
- 实验环境
Windows电脑、MATLAB R2020a
- 实验内容
1.读取图像,彩色图像的灰度化处理,进行边缘检测,实现对火焰的检测。
2.对两幅RGB图像进行火焰特征提取实验
3.对比分析边缘检测算法处理结果和基于图像特征方法处理结果。
- 实验步骤
系统流程图如下:
1.彩色图像读取
使用MATLAB中的imread函数,读取彩色的图像。读图的效果如下:
2.彩色图像的灰度化处理
对彩色图像灰度化处理,灰度化处理是将彩色图像转换为灰度图像的过程,将每个像素的RGB值转换为单独的灰度值。在边缘检测中,灰度图像通常比彩色图像更容易处理,因为它们可以更快地处理,并且在灰度图像中边缘的变化可能更明显。彩色图像中的边缘可能会被彩色噪声所掩盖,而在灰度图像中这种噪声可能会减少。
灰度处理结果如下。
-
二值化处理滤除部分暗处
这一步是考虑到在图中,火焰的部分一般为亮度较大的像素,如果只做边缘检测,暗处的部分,如树、人等部分也会被检测到,但是这一部分不是真正想要检测的火焰目标,所以用程序语句mask=im2bw(I2,0.5);I2=uint8(mask).*I2;其中I2是原图灰度化处理的结果,这样相当于做了一个筛选,把亮度较低的部分过滤掉。
处理结果如下图:
-
边缘检测
对灰度图做边缘检测,分别使用sobel、canny和roberts算子。
-
闭运算处理
边缘检测能够得到轮廓,还需要得到火焰的区域,所以使用闭运算对图像进行处理。
使用strel函数,'disk'参数,创建一个半径为6的圆形结构元素。
使用imclose函数对边缘检测的结果做闭运算处理,使用圆形结构元素对边缘检测后的图像执行闭运算操作。
-
边缘检测判定
计算边缘检测方法得到的火焰部分,是否有60%以上像素点符合火焰分量特征,火焰特征见基于火焰颜色特征的检测。
-
基于火焰颜色特征的检测