對圖像進行顏色識別時,如何解決攝像頭偏色的問題?

目前的一個項目中,需要在圖像中識別出特定的顏色,目前採用的方法是將圖像轉成HSV顏色空間,再從中篩選出指定顏色的區域。

但是實際應用中,由於攝像頭的差異以及環境光的影響,圖像往往會出現偏色的情況,從而影響顏色識別,比如攝像頭偏藍時,白色物體往往呈現藍色。

我設想了一種方案:在攝像頭區域內,設置幾種標準顏色的物體,已知其在正常環境中的RGB或HSV值,然後獲取從攝像頭實際拍攝出來的物體顏色,和標準色進行比對,獲取其差值,然後推算出偏色的程度,再對圖像進行顏色校正。

不知這種方案是否可行?具體的校正演算法又是什麼?或者有沒有其他成熟的偏色校正方法?

------------------------------------------------分割線-----------------------------------

感謝某些朋友作答,我的思路也是在攝像頭前放置一個標準色板,通過攝像頭實際拍攝的差值進行校正。但是,關鍵問題是我不知道得到差值後該如何校正,演算法是怎樣的。比如正常情況下某色塊的顏色值為(r1,g1,b1),攝像頭拍出來是(r2,g2,b2),得到這些值後應該對圖像進行怎樣的處理?


你需要的是這個

拍一張,校色。應該在OpenCV里都有。


遇到了同樣的問題,有些想法,但是目前還沒時間檢驗,希望能有所啟發。

1.對拍照環境、條件進行限制,如拍照角度,背景採用純色等。

2.識別顏色的主要目的可能還是分類,把顏色識別成某些特定顏色而後分類的難度較大,並且意義不是很大(受攝像頭、光照等條件的影響,不可能很精確)。我的思路是將顏色聚類後再分類,聚類過程加入特定問題的限制條件提高準確率。

3.加入用戶交互。

4.如果環境、條件變化不大,可以利用歷史數據提高準確率。


不知道題主什麼應用領域,魔方的話,按照我的經驗,需要穩定的照明,然後把還原好的魔方每個面都照一遍,把每個格子的rgb和hsv都記錄下來,然後根據最大值、最小值、rgb分量差值來識別顏色。


攝像頭裡叫awb白平衡演算法,白平衡做的好的攝像頭在任何光源下拍的都不會偏藍,你這相當於自己做白平衡,不是專業做這個的挺難,要在各種光源下拍照tuning, 不同的isp廠商做的效果都不一樣.


推薦閱讀:

圖普科技是一家怎樣的公司?
matlab對圖像進行濾波,濾波器應該是個幾乘幾的矩陣?
有沒有一鍵式的、傻瓜式的深度學習工具?如果有,是哪個?
為什麼人類對倒置的熟悉人臉頭像沒有記憶和審美能力?
自動售貨機是如何識別不同面額的紙幣的?

TAG:計算機科學 | 圖像識別 | 計算機圖形學 | 計算機圖形學和可視化 |