2019年1月25日 星期五

[Android]_ch11.11_人臉識別元件2



[Android]_ch11.11_人臉識別元件2

package com.derek.ch32_facedetect;



import android.R.integer;

import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Point;

import android.graphics.PointF;

import android.media.FaceDetector;

import android.media.FaceDetector.Face;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;





public class MainActivity extends Activity {

int pic[]={R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6};

    TextView tv;

    ImageView iv;

    Button btn;

    Bitmap bitmap;

    int i=0;

@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        iv=(ImageView)findViewById(R.id.imageView1);

        tv=(TextView)findViewById(R.id.textView1);

        btn=(Button)findViewById(R.id.button1);

        bitmap=BitmapFactory.decodeResource(getResources(), pic[0]);

        faceDetect();

        btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

bitmap=BitmapFactory.decodeResource(getResources(), pic[(i++)%pic.length]);

faceDetect();

}

});

    }

public void faceDetect(){

Face Faces[]=new Face[pic.length];

Bitmap faceBitmap=bitmap.copy(Bitmap.Config.RGB_565, true);

FaceDetector detector=new FaceDetector(faceBitmap.getWidth(),faceBitmap.getHeight(), Faces.length);

int num=detector.findFaces(faceBitmap, Faces);

if(num>0){

tv.setText("發現"+num+"張人臉");

for(int i=0;i<num;i++){

handleFace(Faces[i]);

}

}else{

tv.setText("抱歉...未發現人臉");

iv.setImageBitmap(bitmap);

}



}

public void handleFace(Face face){

PointF point=new PointF();

float distance=face.eyesDistance();

face.getMidPoint(point);

Bitmap darwBitmap=bitmap.copy(Bitmap.Config.RGB_565 , true);

Canvas canvas=new Canvas(darwBitmap);

Paint paint=new Paint();

paint.setColor(Color.RED);

paint.setStrokeWidth(5);

paint.setStyle(Paint.Style.STROKE);

paint.setAntiAlias(true);

canvas.drawRect(point.x-2*distance, point.y-2*distance, point.x+2*distance, point.y+2*distance, paint);

iv.setImageBitmap(darwBitmap);

}



}


沒有留言:

張貼留言

Ether.fi Cash Card 一張所有人必備的加密貨幣信用卡   [Ether.fi Cash Card] : https://www.ether.fi/app/cash/sign-up?ref_code=d27f8523 ------國際交易所------ [Bitg...