2013-04-21 241 views
3

我已經運行從這個鏈接此opencv的Haarlike眼睛檢測與C++的Visual Studio 2010opencv的Haarlike眼睛檢測

http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html

而我的相機沒有運行平穩。所以我刪除了for循環(這段代碼)並且只運行相機。相機運行平穩。

問題是如果我想修改此代碼來檢測眼睛和臉部。

如何修改此代碼以平滑運行?

請顯示修改此代碼的示例。

最好的感謝和抱歉髒話 Chairat(泰國)

回答

6

通常它不是一個簡單的問題,但一個基本的想法(我用我的學士論文)是很簡單的。這不是我用過的全部解決方案,但現在應該足夠了,如果不是的話 - 讓我知道我會寫更多的關於它的。
對於第一幀:

  1. 查找面(我用haarcascade_frontalface_default.xml級聯,但你可以用不同的嘗試),並記住它的位置。
  2. 在面部矩形內找到眼睛(使用Haar級聯眼睛對(haarcascade_mcs_eyepair_big.xml),而不是一隻眼睛 - 這是更快,更簡單的解決方案)並記住位置。

對於其他框架:

  1. 展開(約20-50%),矩形:其中你發現臉上最近。
  2. 在展開的矩形中查找面部。
  3. 在臉上尋找眼睛。如果您在上一步未找到臉部,您可以嘗試在前一個眼睛位置的擴展矩形中搜索眼睛。



一些重要的事情:

  • ,而搜索使用CV_HAAR_FIND_BIGGEST_OBJECT標誌。
  • 在搜索之前將幀轉換爲灰度 - 在搜索過程中,opencv只使用灰度圖像,因此一次轉換整個圖像比轉換整個圖像更快(用於第一個搜索 - 臉部)和僅轉換包含臉部的矩形(用於第二個搜索 - 眼睛)
  • 有人說搜索前均衡直方圖可能會提高結果,我不確定這一點,但如果你想要你可以試試這個 - 使用equalizeHist函數。請注意,它僅適用於灰度圖像。
+0

我只是使用haarcascade_mcs_eyepair_big.xml具有相同的for-loop,但它仍然不流暢,如果你告訴我如何將該循環更改爲可以更流暢地工作的另一個循環,最好的感謝Chairat(泰國) – zlatan14 2013-04-22 00:22:14

+0

嗨zlatan,你找到了更快的解決方案嗎?我現在面臨同樣的問題。謝謝 – Nicola 2013-10-07 13:38:29