问题描述
在现有的基础上,燃气火焰的检测主要是基于火焰颜色特征,由于燃气火焰不同于普通火焰,其中蓝色分量较多,一般的检测方法准确度不够,故采取其他方法来检测火焰,下面主要介绍4个步骤的思路和主要的 python 代码。
解决方案
1 背景差分法分离火焰
(1)算法思路
背景差分法的主要思想是利用无火焰的背景图与含有火焰的图片作像素点对像素点的差分处理,需要注意的是,背景差分法运用时由于需要做差分处理,所以需要将三维的RGB图像转化为一维的灰度图像。因为当相同背景的像素点做差分后该像素点的灰度值为 0 ,也就是黑色,而有火焰的像素点和背景做差分后的灰度值不为零,也就将火焰部分分离了出来。
(2) P ython 代码
def chafenfa(img1,img2):# 此时的img1和 img2 应该是灰度化之后的图像
r1,c1=img1.shape
new_image = np.zeros((r1, c1)) # 构建一维数组,用于存放新的图像数据
for i in range(r1):
for j in range(c1):
new_image[i][j]=abs(img1[i][j]-img2[i][j])
return np.uint8(new_image)
2 滤波增强火焰图像
(1)算法思路
差分法处理过的图像还存在一些噪声,所以需要对图像进行线性滤波;同时,由于图像火焰不够明显,所有还需要增强图像中的火焰区域。滤波和增强的基本思路取决于噪声和需要增强部分的区域特点,噪声的特点是周围大部分都是背景色,且区域较小;增强部分的图像特点是周围是和自身差别不大的主体区域,且区域明显。所以