代码拉取完成,页面将自动刷新
1、SDK包: qsface-release.aar
2、模型文件:qiansou_68_face_landmarks.dat
3、Demo : facepoints
QsFaceApi api = new QsFaceApi();
//Constants.getFaceShapeModelPath() 为模型文件 qiansou_68_face_landmarks.dat 的文件路径
api.initial(Constants.getFaceShapeModelPath());
/**
* 预览回调
*/
private Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Size size = mCamera.getParameters().getPreviewSize();
try{
YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null);
if(image!=null){
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compressToJpeg(new Rect(0, 0, size.width, size.height), 80, stream);
Bitmap bmp = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());
//人脸检测、特征点定位、姿态估计
//QsFace ret = api.detect("/sdcard/temp.jpg");//对一张本地照片进行人脸分析
QsFace face = api.detectBitmap(bmp);
String label = face.getLabel();
int rectLeft = face.getLeft();
int rectTop = face.getTop();
int rectRight = face.getRight();
int rectBottom = face.getBottom();
ArrayList<Point> landmarks = face.getFaceLandmarks();
Log.i("qsface","=====>"+label+","+rectLeft+","+rectTop+","+rectRight+","+rectBottom);
Log.i("qsface","=====>"+landmarks.size());
//获取68个特征点
//详细参考:https://cloud.githubusercontent.com/assets/16308037/24229391/1910e9cc-0fb4-11e7-987b-0fecce2c829e.JPG
ArrayList<Point> points = face.getFaceLandmarks();
for (Point p : points) {
Log.i("p=>", points.toString());
}
//headpose
//详细参考:https://www.cnblogs.com/21207-iHome/p/6894128.html
Log.i("qsface","===angle==>"+face.getPitch()+","+face.getYaw()+","+face.getRoll());
stream.close();
}
}catch(Exception ex){
Log.e("Sys","Error:"+ex.getMessage());
}
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。