2017-08-04 117 views
-1

我正在使用dblib來獲取臉部的眼睛。以下是一些結果的例子。Opencv:我如何獲得眼睛顏色

eye example eye example eye example eye example

我嘗試了好幾種方法來實現目標。例如,我試圖根據這個project來檢測眼睛的中心;從那以後,很容易發現瞳孔和虹膜,但是,我沒有取得好的結果。我也嘗試過使用Hough Circles,但在某些情況下結果非常糟糕。

我最好的選擇是檢測瞳孔,這是眼睛唯一的一部分,每隻眼睛都有一個共同的顏色(黑色)。我想獲得一些想法來做到這一點。

我的第一個想法是在x軸上設置一個區域(在20和60之間),然後在灰度級上使黑色像素(例如小於25)變爲黑色,其餘爲白色。這將創建一個面具,可以使用Hough Circles模糊並檢測瞳孔區域。最後,我可以爲虹膜設置一個半徑。

任何想法,將不勝感激。

謝謝。

+0

tesnorflow圖像分類 –

+1

你只是試圖將眼睛分爲'藍色'或'不是藍色'?如果是這樣,您可以查看整個圖像的顏色直方圖,並查找不出現在任何顏色的皮膚中的藍色尖峯。您應該能夠識別圖像中是否存在藍色色調,或者是否缺少藍色。 – struthersneil

+0

你的問題是什麼?你想分辨多少眼睛顏色?藍色和棕色?綠色藍色棕色?甚至是不同的棕色色調?我會與@struthersneil建議。裁剪這些圖片的中心並對色調進行分類。棕色和藍色的眼睛應該有很大的區別 – Piglet

回答

0

其實你的想法檢測瞳孔的形狀是好的,但你的照片不夠好,直接做。一個簡單的方法是預處理那些刪除所有無用的數據。

我做了一些例子跟你原來的圖片之一,你(在瘸子)顯示

  • 轉到灰度

  • 做一個高通濾波器,以消除所有的小色調變動(你有非常不同的顏色,所以應該加強邊界非常好)

Link to example filtered pic

  • 適用於你的圖像的閾除去殘留的波動(可以通過分析你的灰度圖像顏色直方圖計算參考閾值)

Link to example thresholded pic

經過這三個步驟,你應該有足夠的數據來運行你的形狀檢測。

+0

感謝您的回答。你使用的過濾器的價值是什麼?我試圖按照你的建議來應用它們,但我沒有得到類似的結果。 – sosegon

+0

我正在使用Gimp過濾器,它比標準高通和門限有更多的參與,你可以編寫代碼,但它給你一個很好的操作方法。下面是有PARAMS我萃取: 對於高通: 規格化:0% 色調:0 Sauturation:100% 亮度:100% Gamma值:1 對比度:0% 均化:0% 對於閾值:我只是將對比度設置爲100%(只剩下極端值) – hackela