百度人脸识别离线采集的图片有黑边并且有延时

如题,百度人脸识别离线采集的图片有黑边,有时候采集的背景图黑边区域不是固定的,很让人烦恼,今天想了想,我采集的图片只是用来显示头像区域,采集到的图的中心区域90%是完整的,所以,我们可以在采集到图片后,处理一下。百度人脸识别离线采集的图片有黑边并且有延时_第1张图片

如图中裁剪区就是我需要的区域,O(∩_∩)O

我用的是人脸闸机的demo,裁剪代码

/**
 * 裁剪图片 只适用于Android 因为截图有黑色背景
 * 手动设置裁剪区域
 */
private  Bitmap cutBitmap(Bitmap bm) {
    Bitmap bitmap = null;
    if (bm != null) {
        bitmap = Bitmap.createBitmap(bm, bm.getWidth()/6, bm.getHeight() /8, bm.getWidth()*2/3, bm.getHeight()*2 / 3);
        //对图片的高度的一半进行裁剪
    }
    return bitmap;
}

我的裁剪区域是手动试出来的,要根据采集时的区域来。这样至少比之前的黑边图好看。

第二个问题,人脸检测是异步的虽然是离线但是还是会有延时,然后Android SDK的demo里并没有处理这个问题,我们可以自己搞定,刚开始我自定义了一个CircleImageView,当检测结果为成功时把图片显示出来,覆盖住人脸检测区域,但是位置不好定位,然后我发现FaceDetectRoundView其实也可以实现的,在检测成功后,把检测成功的

base64ImageMap转换成bitmap传给FaceDetectRoundView,然后画在圆形的区域里,就可以了。
  

你可能感兴趣的:(android,人脸识别)