Opencv Haarlike眼睛检测

zla*_*n14 3 opencv

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

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

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

问题是我是否要修改此代码以检测眼睛和面部.

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

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

最好的谢谢和对不起的语言Chairat(泰国)

cyr*_*iel 6

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

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

对于其他帧:

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



几件重要的事情:

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