將OpenCV 用於識別彩色LED顏色時,可以通過分色計算各通道非飽和像素的HSV值,能可靠識別各LED的顏色。
使用python編程,識別一個1024*480的BGR圖像時,耗時約50毫秒。
可以大概識別LED的圓心座標、可以準確識別LED的色彩。記住,在識別前,要先對三通道彩色圖進行模糊化處理。
最後統計ROI區域的H值總和,以及區域內非零像素的數量,求有效平均即可。
原始圖像:
識別出來的圖像
共檢測出12個亮的LED; 本次計算耗時: 55 ms.
結果: ok ; LED編號: 1 ; 期望顏色: YG, 實際顏色 : YG;期望狀態: 亮, 實際狀態: 亮;位於座標 (509,383)
結果: ok ; LED編號: 2 ; 期望顏色: YG, 實際顏色 : YG;期望狀態: 亮, 實際狀態: 亮;位於座標 (342,375)
結果: ok ; LED編號: 3 ; 期望顏色: R, 實際顏色 : R;期望狀態: 亮, 實際狀態: 亮;位於座標 (451,315)
結果: ok ; LED編號: 4 ; 期望顏色: O, 實際顏色 : O;期望狀態: 亮, 實際狀態: 亮;位於座標 (259,309)
結果: ok ; LED編號: 5 ; 期望顏色: O, 實際顏色 : O;期望狀態: 亮, 實際狀態: 亮;位於座標 (514,275)
結果: ok ; LED編號: 6 ; 期望顏色: B, 實際顏色 : B;期望狀態: 亮, 實際狀態: 亮;位於座標 (351,268)
結果: ok ; LED編號: 7 ; 期望顏色: R, 實際顏色 : R;期望狀態: 亮, 實際狀態: 亮;位於座標 (436,212)
結果: ok ; LED編號: 8 ; 期望顏色: O, 實際顏色 : O;期望狀態: 亮, 實際狀態: 亮;位於座標 (264,201)
結果: ok ; LED編號: 9 ; 期望顏色: B, 實際顏色 : B;期望狀態: 亮, 實際狀態: 亮;位於座標 (563,149)
結果: ok ; LED編號: 10 ; 期望顏色: W, 實際顏色 : W;期望狀態: 亮, 實際狀態: 亮;位於座標 (351,145)
結果: ok ; LED編號: 11 ; 期望顏色: G, 實際顏色 : G;期望狀態: 亮, 實際狀態: 亮;位於座標 (438,82)
結果: ok ; LED編號: 12 ; 期望顏色: W, 實際顏色 : W;期望狀態: 亮, 實際狀態: 亮;位於座標 (287,68)
結果: ok ; LED編號: 13 ; 期望顏色: W, 實際顏色 : 滅;期望狀態: 滅, 實際狀態: 滅;位於座標 (1287,68)