android 性别检测,Android人脸年龄和性别检测

然后利用SDK中的DetectManage工具对图片进行人脸检测获取年龄性别数据,代码如下:

btn_check = (Button) findViewById(R.id.btn_check);

btn_check.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

DetectManage.newInstance(FaceRegionDetectActivity.this).getFaceRegion(bitmap, true, true, new FaceRegionCheckListener() {

@Override

public void onFaceRegionCheck(FaceInfo faceInfo, ErrorMsg error) {

dialog.dismiss();

//判断是否成功

if (error.getCode() == 0) {

if (faceInfo.getFaceNum() == 0) {

Toast.makeText(FaceRegionDetectActivity.this, "没有检测到人脸数据!", Toast.LENGTH_SHORT).show();

return;

}

//复制图片bitmap进行绘画操作

Bitmap myBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

Canvas canvas = new Canvas(myBitmap);

//新建文字画笔

Paint txt = new Paint();

txt.setStrokeWidth(6);

int size = bitmap.getWidth() / 18;

txt.setTextSize(size);

txt.setTextAlign(Paint.Align.LEFT);

txt.setColor(Color.RED);

//新建画框画笔

Paint mPaint = new Paint();

mPaint.setAntiAlias(true);

mPaint.setColor(Color.GREEN);

mPaint.setDither(true);

mPaint.setStrokeWidth(6);

mPaint.setStyle(Paint.Style.STROKE);

//遍历检测到的所有人脸

for (int i = 0; i < faceInfo.getFace().size(); i++) {

Face face = faceInfo.getFace().get(i);

FacePosition info = face.getPosition();

Rect rect = new Rect();

rect.set(info.getLeft(), info.getTop(), info.getRight(), info.getBottom());

canvas.save();

canvas.drawRect(rect, mPaint); //画框

//绘画年龄性别文字

canvas.drawText("年龄:" + face.getAttribute().getAge(),

(info.getLeft() + (info.getRight() - info.getLeft())) / 2, info.getTop() + (info.getBottom() - info.getTop()) / 2, txt);

canvas.drawText("女:" + (float) (face.getAttribute().getGender().get(0) * 100) + "% 男" + (float) (face.getAttribute().getGender().get(1) * 100) + "%",

(info.getLeft() + (info.getRight() - info.getLeft())) / 2, (info.getTop() + (info.getBottom() - info.getTop()) / 2) + 60, txt);

}

canvas.restore();

img_show.setImageBitmap(myBitmap); //重新显示图片

}

}

});

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值