android 脸部抠图
2024-10-18 20:22:22
原帖:
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);
}
}
}
}
最新文章
- SEO:让搜索引擎对你的网站更有亲和力(译)
- Linux AVG ANTIVIRUS FREE使用介绍
- Nginx Debug Log
- 设计模式--简单工厂(Factory)模式
- JavaMail入门第二篇 创建邮件
- 数据库表-DD01L DD02L DD03L-保存数据表和域的消息
- python正则表达式介绍
- css3 calc():css简单的数学运算-加减乘除
- android项目在eclipse下编译运行的问题
- Yii学习系列:Yii视频讲义——前篇(转)
- php里 \r\n换行问题
- 学习Javascript闭包(Closure) by 阮一峰
- ubuntu下安装phpstrom
- poj 1815 Friendship (最小割+拆点+枚举)
- IT第七天 - 类及其属性、方法的理解,断点调试初识,代码优化总结,编程逻辑培养
- HDU 5052 LCT
- Mongodb百亿级数据添加,修改,删除,查询等性能测试【四】
- DevOps概述
- 重写equals的详细说明
- bootstarpTable load data