我在使用android.media.FaceDetector的Android中遇到了人脸检测问题
我试图使用此代码检测面部:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap b = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/myimage.jpg", options);
FaceDetector fd = new FaceDetector(b.getWidth(), b.getHeight(), 1);
Face[] face = new Face[1];
int detected_face = fd.findFaces(b, face);
detected_face它总是0;
我试图使用不同的图像,但我收到了相同的结果.
有人可以解释一下我的代码有什么问题吗?
问候
解决方法:
下面的代码对我有用,而且我记得照片上的面孔必须是直立的,这意味着如果在图片中一个人站在他的头上,那么你必须将位图旋转180度才能将它送到FaceDetector,或者他的脸不会被发现)
private void detectFaces() {
int max = 5;
BitmapFactory.Options bfo = new BitmapFactory.Options();
bfo.inPreferredConfig = Bitmap.Config.RGB_565;
bfo.inScaled = false;
bfo.inDither = false;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.myphoto, bfo);
int w = bitmap.getWidth();
int h = bitmap.getHeight();
FaceDetector fd = new FaceDetector(w, h, max);
Face[] faces = new Face[max];
int c = fd.findFaces(bitmap, faces);
for (int i=0;i<c;i++) {
Log.d("TAG", Float.toString(faces[i].eyesdistance()));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。