我要求只显示图像中的脸部。但是,我试图只使用android本机方法来实现它。
我已经浏览了以下链接
Crop Image with face detection in android
但是,上述链接中提到的代码并不适用于所有图像。
如果有人已经有相同的要求,请指导我。
感谢。
答案 0 :(得分:0)
人脸检测算法永远不会(也永远不会)准确。甚至人类有时也会在敬酒中看到jezus的脸。如果参考实现(人脑)包含错误,你怎么能指望计算机100%正确地检测到面部。
当检测到没有(或多于一个)面部时,您应该包括一个后备方案。或者在使用之前对图片进行一些质量检查。
答案 1 :(得分:-1)
您可以使用此圆角矩形代码以更大的圆角半径来实现圆(recipe by Romain Guy):
BitmapShader shader;
shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(shader);
RectF rect = new RectF(0.0f, 0.0f, width, height);
// rect contains the bounds of the shape
// radius is the radius in pixels of the rounded corners
// paint contains the shader that will texture the shape
canvas.drawRoundRect(rect, radius, radius, paint);