2014-03-18 58 views
1

我想创建一个可以检测脸部的基本应用程序。如果有人可以帮助我检测人脸,我可以使用哪些SDK方法或开源选项。检测Android应用程序的面孔?

+0

请显示您到目前为止所尝试的内容。谢谢! –

回答

2

嗨苏珊,这是使用FaceDetector.Face类一个基本的例子:

public class FaceDetection extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(new myView(this)); 
    } 

    private class myView extends View { 

     private int imageWidth, imageHeight; 
     private int numberOfFace = 5; 
     private FaceDetector myFaceDetect; 
     private FaceDetector.Face[] myFace; 
     float myEyesDistance; 
     int numberOfFaceDetected; 

     Bitmap myBitmap; 

     public myView(Context context) { 
      super(context); 

      BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options(); 
      BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; 
      myBitmap = BitmapFactory.decodeResource(getResources(), 
        R.drawable.jorgesys, BitmapFactoryOptionsbfo); 
      imageWidth = myBitmap.getWidth(); 
      imageHeight = myBitmap.getHeight(); 
      myFace = new FaceDetector.Face[numberOfFace]; 
      myFaceDetect = new FaceDetector(imageWidth, imageHeight, 
        numberOfFace); 
      numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace); 

     } 

     @Override 
     protected void onDraw(Canvas canvas) { 
      canvas.drawBitmap(myBitmap, 0, 0, null); 
      Paint myPaint = new Paint(); 
      myPaint.setColor(Color.GREEN); 
      myPaint.setStyle(Paint.Style.STROKE); 
      myPaint.setStrokeWidth(3); 
      for (int i = 0; i < numberOfFaceDetected; i++) { 
       Face face = myFace[i]; 
       PointF myMidPoint = new PointF(); 
       face.getMidPoint(myMidPoint); 
       myEyesDistance = face.eyesDistance(); 

       canvas.drawRect((int) (myMidPoint.x - myEyesDistance * 2), 
         (int) (myMidPoint.y - myEyesDistance * 2), 
         (int) (myMidPoint.x + myEyesDistance * 2), 
         (int) (myMidPoint.y + myEyesDistance * 2), myPaint); 
      } 
     } 
    } 
} 

里面你/drawable文件夹中添加的图像有几个面进行测试,这个例子中使用的图像称为jorgesys.png( R.drawable.jorgesys)

更多信息: Face recognition using android sdk not opencv

+0

对于FaceDetection API,它似乎只能检测到眼睛的中间和它们之间的距离,但是有可能找到个人的眼睛吗?或者是否有可能知道脸部是倾斜的? –