基于视频的火焰的检测
如果通过采集监控摄像头的画面,监控广大区域,发现着火区域,能够快速报警的话,就可以有效提高监控的效果,提早报警,大大减少财产损失和人员伤亡.
我们视觉上发现火灾的途径有2个:
通过观察火焰,及时发现火灾.
通过观察烟雾,及时发现火情.
我们今天就对火焰的视觉检测做个简单的实验.
火焰
火焰检测的算法
一般情况下火焰的颜色都是明亮的红色.采用颜色过滤的方法,增加一个高低的过滤掩码层,就可以把火焰从图片中单独过滤出来,这个方法比简单,也适用于对特定颜色物体的跟踪.
一般是这样处理的:
采集图像
把BGR颜色空间转换成HSV空间
定义高通和低通的滤波
生产过滤的掩码与图像运算
最终生成过滤后的火焰图像
fire0.gif
fire1.gif
import cv2
import numpy as np
video_file = "test.mov"
video = cv2.VideoCapture(video_file)
while True:
(grabbed, frame) = video.read()
if not grabbed:
break
blur = cv2.GaussianBlur(frame, (21, 21), 0)
hsv = cv2.cvtColor(blur, cv2.CO