使用OpenCV进行面部特征检测,眼睛和嘴角点

时间:2013-05-29 14:32:50

标签: java opencv face-detection feature-detection haar-wavelet

我正在进行脸部特征检测项目,我确实使用OpenCv withHaarcascade xml文件检测眼睛,鼻子和嘴巴。但是,我希望有眼睛和嘴角点和鼻子中心。目标是用它来预测情绪。我发现这个链接显示它是如何工作的,我需要使用JAVA来获得这个结果。任何人都可以帮助我吗?

提前致谢。

http://cmp.felk.cvut.cz/~uricamic/flandmark/

在这一部分我们收到了脸部图像,我们在脸上画了一些颜色:

 public void drawFaces(BufferedImage image) {
    final List<PotentialFace> faces = FacialRecognition.run(image, db);
    if (faces.isEmpty()) {
      return;
    }
    Graphics2D g2 = image.createGraphics();
    g2.setStroke(new BasicStroke(2));
    currentFaces.clear();
    for (PotentialFace face : faces) {
      final Rectangle r = face.box;
      final Color c1, c2;
      final String msg;
      if (face.name == null) {
        c1 = c2 = new Color(scale(r.x, getWidth(), 255d), scale(r.y, getHeight(), 255d), 0).brighter();
        msg = "Click to tag";
      } else {
        c1 = new Color(face.name.hashCode()).brighter();
        c2 = new Color((int) (c1.getRGB() - 10*face.confidence));
        msg = String.format("%s: %f", face.name, face.confidence);
      }
      g2.setColor(c1);
      g2.drawRect(r.x, r.y, r.width, r.height);
      g2.setColor(c2);
      g2.drawString(msg, r.x + 5, r.y - 5);
      currentFaces.add(r);
    }

1 个答案:

答案 0 :(得分:2)

因为flandmark是完全符合你想要的C ++库(找到眼睛,嘴巴和中心/鼻尖的角点),我认为你应该只寻找如何运行这个库的机制来自JAVA内部。 flandmark本身与OpenCV无关,只有该库中包含的示例正在使用它(用于面部检测和显示结果)。

我找到了一些关于如何使用JAVA的C ++库的漂亮教程:

  1. http://thebreakfastpost.com/2012/01/23/wrapping-a-c-library-with-jni-part-1/