有一两个月没有更新博客了,最近一直在忙人脸识别的项目,先将项目中更改虹软人脸框的方法抽取出来,希望对大家有所帮助。
尊重原创,转载请注明出处: http://blog.csdn.net/qq137722697
为什么要改?
先来看看sdk demo中提供的人脸框样式,这个框看上去并不是非常美观(个人觉得)
再看看下面这个框是不是就要顺眼一点
怎么换?
先来看看原始的画法:
@Override
public void onAfterRender(CameraFrameData data) {
mGLSurfaceView.getGLES2Render().draw_rect((Rect[]) data.getParams(), Color.GREEN, 2);
}
其实更换人脸识别框是非常简单的,因为虹软的人脸识别sdk已经将人脸的位置回调出来了,实时回调的是一个Rect(将回调出来的CameraFrameData强转一下即可),既然都知道人脸框的位置,那就是一个自定义View就解决的事了。
只需要在onDraw方法中画八条线即可
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (rect != null) {
/**
* 左上角的竖线
*/
canvas.drawLine(rect.left, rect.top, rect.left, rect.top + 20, mPaint);
/**
* 左上角的横线
*/
canvas.drawLine(rect.left, rect.top, rect.left + 20, rect.top, mPaint);
/**
* 右上角的竖线
*/
canvas.drawLine(rect.right, rect.top, rect.right - 20, rect.top, mPaint);
/**
* 右上角的横线
*/
canvas.drawLine(rect.right, rect.top, rect.right, rect.top + 20, mPaint);
/**
* 左下角的竖线
*/
canvas.drawLine(rect.left, rect