运动检测

其实就是检测背景,对背景建模然后提取前景中运动的物体作为候选火灾样本。尝试了两种简单的背景算法:高斯背景建模和背景相减,还是背景相减的效果较好。以下是代码:
  1. //背景相减
  2. void FireDetector:: CheckFireMove(IplImage *pImgFrame/*, IplImage* pInitBackground, IplImage *pImgMotion*/)
  3. {
  4. int thresh_low = 80;//30
  5. cvCvtColor(pImgFrame, pImgMotion, CV_BGR2GRAY);
  6. cvConvert(pImgMotion, pMatFrame);
  7. cvConvert(pImgMotion, pMatProcessed);
  8. cvConvert(pImgBackground, pMatBackground);
  9. cvSmooth(pMatFrame, pMatFrame, CV_GAUSSIAN, 3, 0, 0);
  10. //计算两幅图的差的绝对值
  11. cvAbsDiff(pMatFrame, pMatBackground, pMatProcessed);
  12. //cvConvert(pMatProcessed,pImgProcessed);
  13. //cvThresholdBidirection(pImgProcessed,thresh_low);
  14. //对单通道数组应用固定阈值操作,此处得到二值图像
  15. cvThreshold(pMatProcessed, pImgMotion, thresh_low, 255.0, CV_THRESH_BINARY);
  16. //使用 Gaussian 金字塔分解对输入图像向下采样,再向上采样
  17. cvPyrDown(pImgMotion,pyrImage,CV_GAUSSIAN_5x5);
  18. cvPyrUp(pyrImage,pImgMotion,CV_GAUSSIAN_5x5);
  19. //腐蚀和膨胀操作
  20. cvErode(pImgMotion, pImgMotion, 0, 1);
  21. cvDilate(pImgMotion, pImgMotion, 0, 1);
  22. //使用当前帧0.3的比例对背景图像更新
  23. int pUpdate=0.3;//0.0003
  24. cvRunningAvg(pMatFrame, pMatBackground, pUpdate, 0);
  25. cvConvert(pMatBackground, pImgBackground);
  26. }
颜色检测
颜色检测最初用的是Thou-Ho (Chao-Ho) Chen, Ping-Hsueh Wu, and Yung-Chuen Chiou 于2004年在ICIP发表的文章《An Early Fire-Detection Method Based on Image Processing》中建立的颜色模型:
转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消
其中R、G、B为RGB模型中的颜色分量S为HSI颜色模型中的饱和度;Rt为R分量的阈值经试验得到可设定在55~56之间;St为饱和度的阈值经试验得到可设定在115~135之间。虽然简单,确很有效。之后自己又增加了些亮度之类的信息,并调整了阈值。
  1. //论文《An Early Fire-Detection Method Based on Image Processing》中的颜色模型
  2. void FireDetector::CheckFireColor2(IplImage *RGBimg)
  3. {
  4. int RedThreshold=115;  //115~135
  5. int SaturationThreshold=45;  //55~65
  6. for(int j = 0;j < RGBimg->height;j++)
  7. {
  8. for (int i = 0;i < RGBimg->widthStep;i+=3)
  9. {
  10. uchar B = (uchar)RGBimg->imageData[j*RGBimg->widthStep+i];
  11. uchar G = (uchar)RGBimg->imageData[j*RGBimg->widthStep+i+1];
  12. uchar R = (uchar)RGBimg->imageData[j*RGBimg->widthStep+i+2];
  13. uchar maxv=max(max(R,G),B);
  14. uchar minv=min(min(R,G),B);
  15. double S = (1 - 3.0*minv/(R+G+B));
  16. //火焰像素满足颜色特征
  17. //(1)R>RT   (2)R>=G>=B   (3)S>=( (255-R) * ST / RT )
  18. if(R>RedThreshold&&R>=G&&G>=B&&S>0.20/*&&/*S>(255-R)/20&&S>=((255-R)*SaturationThreshold/RedThreshold)*/)
  19. pImgFire->imageData[i/3+pImgFire->widthStep*j] = 255;
  20. else
  21. pImgFire->imageData[i/3+pImgFire->widthStep*j] = 0;
  22. }
  23. }
  24. }

经过两部检测后的备选像素,大于一定值则判定为火,标框并报警,效果如下:

转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消

OpenCV森林火灾检测相关推荐

  1. 基于Detectron2模型和深度学习方法的改进森林火灾检测方法

     1.文章信息 本次介绍的文章是来自韩国科研团队的一篇2023年火灾检测文章,文章立足于森林火灾检测,题目为<An Improved Forest Fire Detection Method B ...

  2. 【火灾检测】基于matlab GUI森林火灾检测系统(带面板)【含Matlab源码 1921期】

    ⛄一.火灾检测简介 1 引言 目前森林火灾是破坏森林的最主要的灾害之一, 影响很大.森林是各种珍禽异兽的家园, 森林遭受火灾后, 会破坏野生动物赖以生存的环境.严重的森林火灾不仅能引起水土流失, 还会 ...

  3. 【火灾检测】森林火灾检测系统(带面板)【含GUI Matlab源码 1921期】

    ⛄一.火灾检测简介 1 引言 目前森林火灾是破坏森林的最主要的灾害之一, 影响很大.森林是各种珍禽异兽的家园, 森林遭受火灾后, 会破坏野生动物赖以生存的环境.严重的森林火灾不仅能引起水土流失, 还会 ...

  4. 【火灾检测】基于计算机视觉实现森林火灾检测系统带GUI界面

    1 简介 森林是自然中的宝贵资源,同时还维持着生态平衡.森林火灾一旦发生,危害十分巨大,如果能在林火的萌芽状态就进行识别,则可以减少不必要的损失.随着互联网技术的发展,传统的人工监控森林火灾已经被互联 ...

  5. 【计算机视觉】森林火灾检测-2

    转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7523683 有关火灾检测的几篇论文的算法小总结: An Early Fire-De ...

  6. 使用 CNN 进行森林火灾检测

    该项目是使用卷积神经网络进行检测森林火灾. 该数据集包含三类图像:"火"."不火"."开始火",总共约 6000 张图像. 该模型可用于从森 ...

  7. 【计算机视觉】森林火灾检测-1

    转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7522467 前段时间做了一个火灾检测的小程序,因为时间紧,实现的算法也简单.只用了 ...

  8. 『森林火灾检测』基于PaddleX实现森林火灾检测

    效果预览 B站链接 AIStudio链接 项目背景   2019年3月30日17时 ,凉山州木里县境内发生森林火灾,30名扑火人员牺牲.   2020年3月30日15时35分,凉山州西昌市经久乡和安哈 ...

  9. Fire-Net: 主动检测森林火灾的深度学习框架

    1.文章信息 本次介绍的文章是2022年发表在Journal of Sensors的一篇基于计算机视觉的森林火灾检测的文章. 2.摘要 保护森林对于维持生态系统至关重要.随着计算机视觉和传感器技术在林 ...

最新文章

  1. SmartGit安装及使用
  2. 关于input type=“text”文本框的 默认宽度
  3. 基础贪心算法(HDU2037今年暑假不AC)
  4. c语言通过什么传递参数 寄存器,关于使用寄存器传参解决方法
  5. 蓝桥杯java龟兔赛跑_算法-蓝桥杯习题(一)
  6. 美团大咖:程序员35岁前应做好的技术积累
  7. mysql where 大小写_java – 使用select where where Mysql在Mysql中区分大小写
  8. POJ-3421 X-factor Chains---求因子+递推 或 素因子+组合数学
  9. android真机调试看不到logcat信息
  10. Netty工作笔记0036---单Reactor单线程模式
  11. CentOS 下使用yum安装nodejs
  12. 两台linux电脑怎么互推文件夹,Llinux文件目录权限及chmod命令简析
  13. Spark history-server 配置 !运维人员的强大工具
  14. 写给嵌入式方向的某些同学 - 基于WINCE系统的程序开发[不完整版]
  15. linux安装json
  16. 使用POI实现报表打印功能
  17. react项目中使用消息订阅(subscribe)-发布(publish)机制
  18. UVA 11584 Partitioning by Palindromes
  19. 声音处理用什么软件?3款软件让你的作品出圈!
  20. Netty心跳检测代码及源码流程

热门文章

  1. 航空涡扇发动机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. AE基础教程第一阶段——01影视后期专业导论
  3. 使用fft对相位进行unwrap
  4. 常用Excel和Word操作收集整理
  5. 三星电子股东大会今日召开 股东或借机要求把李在镕干掉?
  6. 【Unity-学习-013】EasyAR4.0稀疏空间地图 在Unity中编辑扫描的场景
  7. jpa 使用hql进行联表查询
  8. visio2016中如何画出有箭头的直线以及如何掉转箭头方向
  9. 虚拟主服务器是什么原因,什么是虚拟主机?
  10. XPS测试数据考盘后的处理数据步骤