2013-02-07 49 views
1

我正在開發用於檢測拳擊手衝運動的軟件。目前,我使用利用inRange函數基於顏色的分割,並設置它來檢測藍色最小值和藍的最大值。問題在於範圍相當廣泛,我的攝像機有時會挑選噪音並將不感興趣的物體分段。通過掃描拳擊手套的圖像並在進一步處理之前建立精確的藍色值來改進軟件。掃描檢測物體顏色在圖像

它將使SENS給我說值存儲在一個Vector,並呼籲它在INRANGE小說

// My current function which takes the Minimum and Maximum values of Blue Color 
Mat range_out; 
inRange(blur_out, Scalar(100, 100, 100), Scalar(120, 255, 255), range_out); 

,所以我會像載體去這裏的某個地方。

enter image description here

  1. 掃描此上述圖像計算藍值
  2. 存儲此值在陣列
  3. 召回在INRANGE函數數組

可能有人建議的解決方案這個問題還是直接給我一個信息來源,我可以找到答案?

+0

+1有趣的項目。您可能想要對亮點或反思進行一些操作,以減少確定移動的複雜程度。 –

+0

謝謝......你們我有與亮點/反射/噪音處理多種圖像處理功能etc.This打印可控硅任何處理之前採取形式的輸入框... eventley了出來把Windows顯示輪廓包裹在一個邊界框中。看看這裏... [鏈接](http://stackoverflow.com/questions/14733042/opencv-bounding-box)。我相信我可以實現更大的結果,如果我可以事先掃描圖像的顏色值,然後在inRange中使用此值。 ooo ye Thx +1 +1 – Tomazi

+0

獲取更好的相機? – karlphillip

回答

0

因爲你是檢測運動的拳擊手的手套,從而第一次使用運動到它從場景中的其他元件...使用幀分化或光流至手套分離和其它運動區域從非運動區域分開...現在那些動人的區域嘗試一些顏色檢測...

0
  1. Separe亮度和cromaticity - 你一定範圍內不會在不同的光照條件下很好地工作。你的範圍很廣,可能是因爲你試圖在黑暗中同時看到「藍色」。轉換圖像到HSV(或La * b *表)並丟棄V(或L),保持H和S(或a *和b *)。

  2. 瞭解的顏色分佈而不是簡單的範圍 - 採取一些樣品並計算H和S(A *或b *)爲在手套上像素的2D 顏色直方圖。該直方圖將成爲您的對象顏色分佈的模型。然後,使用c2.calcBackProjection來檢測場景中感興趣的像素。

  3. 清潔使用形態學閉動作

重要的結果:在步驟2中,發揮一點與不同的量化值(即,不同數目的二進制位)。

+0

你的回答很有意義,我會給它一個去看看我可以存檔。謝謝 – Tomazi