Я пытаюсь получить изображения лица, сделанные с использованием намерения ACTION_IMAGE_CAPTURE. Но почему-то FaceDetector никогда не находит изображения. Это мой код.FaceDetector не распознает лицо, снятое с намерением ACTION_IMAGE_CAPTURE
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, options);
options.inSampleSize = calculateInSampleSize(options,desiredWidth,desiredHeight);
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(filePath,options);
ExifInterface exif = new ExifInterface(filePath);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
Matrix matrix = new Matrix();
boolean recycle = true;
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
matrix.postRotate(90);
break;
case ExifInterface.ORIENTATION_ROTATE_180:
matrix.postRotate(180);
break;
case ExifInterface.ORIENTATION_ROTATE_270:
matrix.postRotate(270);
break;
default:
recycle = false;
break;
}
Bitmap finalBM = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
if(recycle)
bitmap.recycle();
FaceDetector.Face[] faces = new FaceDetector.Face[1];
FaceDetector faceDetector = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(),1);
int numFaces = faceDetector.findFaces(bitmap,faces);
return finalBM;
На этом этапе все, что я делаю, это проверка переменной numFaces, чтобы увидеть, было ли обнаружено какое-либо лицо. Но каждый раз 0 даже думал, что картина - только мое собственное лицо. Также я поворачиваю изображение, если это необходимо. Я пытался обнаружить лица перед вращением, и это не сработало.
Если вы просто хотите быстро определить лица и просто использовать: https://github.com/blundell/WoodyFaceDetection (или посмотрите на это, чтобы понять, как это происходит с обнаружением dace) – Blundell
Помимо этого - глядя на ваш код единственный способ помочь вам - это то, что они использовали тот же API так же, как и здесь. Если вам нужна помощь, вы должны расширить, кто может помочь вам, объяснив, что делает код выше, и ссылаться на любую документацию или объяснение, в которых вы нуждаетесь. * тогда * вы с большей вероятностью получите помощь/ответ – Blundell