zoukankan      html  css  js  c++  java
  • android 脸部抠图

    原帖:
    http://www.eoeandroid.com/thread-205445-1-1.html

    package com.face;
    
    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.PointF;
    import android.media.FaceDetector;
    import android.media.FaceDetector.Face;
    import android.os.Bundle;
    import android.view.View;
     
    public class MainActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public 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.p1, BitmapFactoryOptionsbfo);
                imageWidth = myBitmap.getWidth();
                imageHeight = myBitmap.getHeight();
                myFace = new FaceDetector.Face[numberOfFace];
                myFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace);
                numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace);
            }
     
            protected void onDraw(Canvas canvas) {
                // TODO Auto-generated method stub
     
                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);
                }
            }
        }
    }
    

      

  • 相关阅读:
    jzoj5377 开拓
    JZOJ5371 组合数问题
    JZOJ 10043 第k小数
    联赛emacs配置
    11.7 NOIP总复习总结
    cogs791 [HAOI2012] 音量调节
    bzoj1968 [Ahoi2005]COMMON 约数研究
    cogs 1330 [HNOI2008]玩具装箱toy
    cogs2479 偏序 cdq+树套树
    【CJOJ2433】陌上花开 CDQ分治
  • 原文地址:https://www.cnblogs.com/sun_moon_earth/p/3292791.html
Copyright © 2011-2022 走看看