如何从android中的图像中仅裁剪脸部?

时间:2014-06-17 12:22:06

标签: android face-detection

我要求只显示图像中的脸部。但是,我试图只使用android本机方法来实现它。

我已经浏览了以下链接

Crop Image with face detection in android

但是,上述链接中提到的代码并不适用于所有图像。

如果有人已经有相同的要求,请指导我。

感谢。

2 个答案:

答案 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);