日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2025/7/25 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【计算机视觉】森林火灾检测-1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載請注明出處:http://blog.csdn.net/xiaowei_cqu/article/details/7522467

前段時間做了一個火災(zāi)檢測的小程序,因為時間緊,實現(xiàn)的算法也簡單。只用了兩步處理:運動檢測和顏色檢測。日后還會再改進~

運動檢測

其實就是檢測背景,對背景建模然后提取前景中運動的物體作為候選火災(zāi)樣本。嘗試了兩種簡單的背景算法:高斯背景建模和背景相減,還是背景相減的效果較好。以下是代碼: [cpp]?view plaincopy
  • //背景相減??
  • void?FireDetector::?CheckFireMove(IplImage?*pImgFrame/*,?IplImage*?pInitBackground,?IplImage?*pImgMotion*/)??
  • {??
  • ????int?thresh_low?=?80;//30??
  • ??
  • ????cvCvtColor(pImgFrame,?pImgMotion,?CV_BGR2GRAY);??
  • ????cvConvert(pImgMotion,?pMatFrame);??
  • ????cvConvert(pImgMotion,?pMatProcessed);??
  • ????cvConvert(pImgBackground,?pMatBackground);??
  • ??
  • ????cvSmooth(pMatFrame,?pMatFrame,?CV_GAUSSIAN,?3,?0,?0);??
  • ????//計算兩幅圖的差的絕對值??
  • ????cvAbsDiff(pMatFrame,?pMatBackground,?pMatProcessed);??
  • ????//cvConvert(pMatProcessed,pImgProcessed);??
  • ????//cvThresholdBidirection(pImgProcessed,thresh_low);??
  • ????//對單通道數(shù)組應(yīng)用固定閾值操作,此處得到二值圖像??
  • ????cvThreshold(pMatProcessed,?pImgMotion,?thresh_low,?255.0,?CV_THRESH_BINARY);??
  • ????//使用?Gaussian?金字塔分解對輸入圖像向下采樣,再向上采樣??
  • ????cvPyrDown(pImgMotion,pyrImage,CV_GAUSSIAN_5x5);??
  • ????cvPyrUp(pyrImage,pImgMotion,CV_GAUSSIAN_5x5);??
  • ????//腐蝕和膨脹操作??
  • ????cvErode(pImgMotion,?pImgMotion,?0,?1);??
  • ????cvDilate(pImgMotion,?pImgMotion,?0,?1);???
  • ??
  • ????//使用當前幀0.3的比例對背景圖像更新??
  • ????int?pUpdate=0.3;//0.0003??
  • ????cvRunningAvg(pMatFrame,?pMatBackground,?pUpdate,?0);??????????????????????
  • ????cvConvert(pMatBackground,?pImgBackground);??
  • }??

  • 顏色檢測 顏色檢測最初用的是Thou-Ho (Chao-Ho) Chen, Ping-Hsueh Wu, and Yung-Chuen Chiou?于2004年在ICIP發(fā)表的文章《An Early Fire-Detection Method Based on Image Processing》中建立的顏色模型:
    其中R、G、B為RGB模型中的顏色分量S為HSI顏色模型中的飽和度;Rt為R分量的閾值經(jīng)試驗得到可設(shè)定在55~56之間;St為飽和度的閾值經(jīng)試驗得到可設(shè)定在115~135之間。雖然簡單,確很有效。之后自己又增加了些亮度之類的信息,并調(diào)整了閾值。 [cpp]?view plaincopy
  • //論文《An?Early?Fire-Detection?Method?Based?on?Image?Processing》中的顏色模型??
  • void?FireDetector::CheckFireColor2(IplImage?*RGBimg)??
  • {??
  • ????int?RedThreshold=115;??//115~135???
  • ????int?SaturationThreshold=45;??//55~65??
  • ??
  • ????for(int?j?=?0;j?<?RGBimg->height;j++)??
  • ????{??
  • ????????for?(int?i?=?0;i?<?RGBimg->widthStep;i+=3)??
  • ????????{??
  • ????????????uchar?B?=?(uchar)RGBimg->imageData[j*RGBimg->widthStep+i];??
  • ????????????uchar?G?=?(uchar)RGBimg->imageData[j*RGBimg->widthStep+i+1];??
  • ????????????uchar?R?=?(uchar)RGBimg->imageData[j*RGBimg->widthStep+i+2];??
  • ????????????uchar?maxv=max(max(R,G),B);???
  • ????????????uchar?minv=min(min(R,G),B);???
  • ????????????double?S?=?(1?-?3.0*minv/(R+G+B));??
  • ??????????????
  • ????????????//火焰像素滿足顏色特征??
  • ????????????//(1)R>RT???(2)R>=G>=B???(3)S>=(?(255-R)?*?ST?/?RT?)??
  • ????????????if(R>RedThreshold&&R>=G&&G>=B&&S>0.20/*&&/*S>(255-R)/20&&S>=((255-R)*SaturationThreshold/RedThreshold)*/)??
  • ????????????????pImgFire->imageData[i/3+pImgFire->widthStep*j]?=?255;??
  • ????????????else??
  • ????????????????pImgFire->imageData[i/3+pImgFire->widthStep*j]?=?0;??
  • ??????????????
  • ????????}??
  • ????}??
  • }??

  • 經(jīng)過兩部檢測后的備選像素,大于一定值則判定為火,標框并報警,效果如下:

    轉(zhuǎn)載于:https://www.cnblogs.com/alan666/p/8312349.html

    《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的【计算机视觉】森林火灾检测-1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。