OpenCV的面部检测器参数cv_haar_scale_image

时间:2011-05-25 05:04:20

标签: c++ opencv image-processing

cv_haar_scale_image在opencv的函数cvhaardetectobjects中做了什么?

4 个答案:

答案 0 :(得分:5)

可以进行更多优化。

面部检测实现针对CV_HAAR_SCALE_IMAGE优化,而不是CV_HAAR_DO_CANNY_PRUNING。

因为CV_HAAR_SCALE_IMAGE方法更加DMA(直接内存访问)友好。默认方法(CV_HAAR_DO_CANNY_PRUNING)实现需要随机访问主存储区域。

答案 1 :(得分:4)

标志CV_HAAR_SCALE_IMAGE告诉算法缩放图像而不是检测器。

这里有一个例子:Face detection: How to find faces with openCV

答案 2 :(得分:3)

根据EMGU,它是OpenCV的.NET包装器,有时会提供比OpenCV更好的文档,

  

DO_CANNY_PRUNING
  如果已设置,则该功能使用Canny边缘检测器   拒绝一些包含太少或太多边缘的图像区域   因此不能包含搜索到的对象。特定的门槛   调整值以进行面部检测,在这种情况下进行修剪   加快处理速度

     

SCALE_IMAGE
  对于使用的每个比例因子,该函数将缩减   图像而不是"缩放"分类器中的要素坐标   级联。目前,该选项只能单独使用,即标志   不能与其他人一起设置

     

FIND_BIGGEST_OBJECT
  如果已设置,则函数找到最大值   图像中的对象(如果有)。也就是说,输出序列会   包含一个(或零)元素

     

DO_ROUGH_SEARCH
  它应该只在使用时使用   设置了CV_HAAR_FIND_BIGGEST_OBJECT并且min_neighbors> 0.如果是旗帜   设置后,该函数不会查找较小尺寸的候选者   一旦它找到了对象(有足够的邻居候选人)   目前的规模。通常,当min_neighbors被修复时,模式   产生的对象矩形不如常规(或稍大)   单对象模式(flags = CV_HAAR_FIND_BIGGEST_OBJECT),但它很多   更快,达到一个数量级。可以指定更大的min_neighbors值以提高准确性。

Source

答案 3 :(得分:0)

CV_HAAR_DO_CANNY_PRUNING会导致分类器无法跳过没有行的平坦区域