本文首發於微信公衆號:"算法與編程之美",歡迎關注,及時瞭解更多此係列文章。
提出問題及初步分析
在計算機中圖片一般用數組儲存,以像素點爲單位。
import cv2 as cv |
----返回值--- (323, 500, 3) #(高、寬、通道數) 484500 #像素點個數 |
在RGB顏色空間下,每個像素點的顏色由R、G、B三通道組成,RGB顏色空間以R(Red紅)、G(Green綠)、B(Blue藍)三種基本色爲基礎,進行不同程度的疊加,產生豐富而廣泛的顏色,所以也叫三基色模式。每個通道的取值範圍從0到255,每種顏色都有對應的RGB值。
火焰也是如此,只要找到火焰顏色的RGB值的規律,就可以藉此來識別圖中的火焰。那麼如何找到火焰的RGB值規律呢?
解決問題
最簡單的方法就是統計學中的抽樣調查,找幾張只有火焰的圖,讀取它們的RGB值,並從中找出規律。也可以參考他人所寫的相關文章,直接借用別人的數據。
例如下圖:
|
----返回值--- b、g、r三通道均值分別爲5.259146666666667、33.386674666666664、74.47014266666666 |
分析問題
除了RGB的取值範圍存在規律之外,RGB三者的值之間也存在關係,這裏直接提供一些數據作爲參考。
火焰RGB均值取值範圍:R=217、G=109、B=78
RGB模式下提取疑似火焰
上述式子中R(x,y),G(x,y),B(x,y)表示該像素點三種顏色的通道值,Rmon表示R通道的平均值, K代表總像素點數。
疑似火焰區域的關係式:
r=R/(R+G+B)
g=G/(R+G+B)
b=B/(R+G+B)
g>=0.846b+0.048
g<=-0.461b+0.495
g<=191.957b-0.621
將上述公式作爲條件,可以大致提取疑似火焰部分
效果圖:
#代碼
|
參考文獻
[1]耿慶田,於繁華,趙宏偉,王闖.基於顏色特徵的火焰檢測新算法[J].吉林大學學報(工學版),2014,44(06):1787-1792.
實習編輯:賈婧媛
稿件來源:深度學習與文旅應用實驗室(DLETA)
本文分享自微信公衆號 - 算法與編程之美(algo_coding)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。