Opencv Haarlike眼睛检测

时间:2013-04-21 06:43:26

标签: opencv

我已经使用C ++ visual studio 2010从这个链接中运行了这个Opencv Haarlike眼睛检测

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

我的相机运行不顺畅。所以我删除for循环(此代码)并仅运行相机。相机运行平稳。

问题是我是否想修改此代码以检测眼睛和脸部。

如何将此代码修改为顺利运行?

请显示修改此代码的示例。

非常感谢并抱歉语言不好 Chairat(泰国)

1 个答案:

答案 0 :(得分:6)

一般来说,这不是一个微不足道的问题,但一个基本的想法(我用于我的BSc论文)非常简单。这不是我用过的整个解决方案,但现在这应该足够了,如果不是 - 让我知道我会写更多关于它。
对于第一帧:

  1. 找到面孔(我使用了haarcascade_frontalface_default.xml级联,但您可以尝试不同的方式)并记住它的位置。
  2. 在面部矩形内找到眼睛(使用Haar级联眼睛对(haarcascade_mcs_eyepair_big.xml),而不是一只眼睛 - 这是更快更简单的解决方案)并记住位置。
  3. 对于其他框架:

    1. 展开(约20-50%)最近找到面孔的矩形。
    2. 在展开的矩形中查找面部。
    3. 在脸上找到眼睛。如果您在上一步中没有找到面部,则可以尝试在前一眼睛位置的扩展矩形中搜索眼睛。


    4. 几件重要的事情:

      • 在搜索时使用CV_HAAR_FIND_BIGGEST_OBJECT标志。
      • 在搜索之前将帧转换为灰度 - 在搜索期间,opencv仅使用灰度图像,因此转换整个图像比转换整个图像(对于第一次搜索 - 面)更快,而不是仅转换包含面的矩形(用于第二次搜索 - 眼)
      • 有些人说在搜索之前均衡直方图可能会改善结果,我不确定,但如果你想要,你可以试试这个 - 使用equalizeHist函数。请注意,它仅适用于灰度图像。