如何调整OpenCV检测误报的容忍度?

时间:2014-11-11 18:55:28

标签: java opencv video

我正在使用OpenCV开发一个系统,它使用haarCascades xml文件检测对象。但是,有许多错误的检测。有一种方法可以最大限度地减少错误检测?这是我的代码的一部分:

private void detecta(String arquivo)
{
CascadeClassifier bodyDetector = new CascadeClassifier(path+arquivo);
 MatOfRect faceDetections = new MatOfRect();
    bodyDetector.detectMultiScale(webcam_image, faceDetections);
       // bodyDetector.detectMultiScale(webcam_image, faceDetections);

    for (Rect rect : faceDetections.toArray()) {
      Core.rectangle(webcam_image, new Point(rect.x, rect.y), new Point(rect.x +         rect.width, rect.y + rect.height), new Scalar(0, 255, 0));// mat2Buf, mat2Buf);
    }

    if (faceDetections.toArray().length == 0) {

      toc.getLblSaida().setText("");

    } else {

      //java.awt.Toolkit.getDefaultToolkit().beep();  
      toc.getLblSaida().setText(+faceDetections.toArray().length + "objetos detectados");
  try {
      playSound();
  } catch (IOException ex) {
      Logger.getLogger(TestWebCam.class.getName()).log(Level.SEVERE, null, ex);
  }
    }

}

1 个答案:

答案 0 :(得分:0)

detectMultiScale的一些重载可以让你这样做。

即增加minNeighbours的值[有效检测所需],设置minSize和maxSize可能会达到你想要的效果。