udacity / AdvancedAndroid_Emojify

139 stars 452 forks source link

SOLVED: No faces found on image, solution by @aznxed #53

Open javierfurus opened 5 years ago

javierfurus commented 5 years ago

If faces are not detected, try this solution by @aznxed. The issue is that face are only detected when you take a picture in landscape mode which makes the usability of the app - and the code we learn - very limited, outright broken. This solution rotates the portrait images so that they are usable and face detection works as intended.

    Try this in addition to line 73 in BitmapUtils.java, tested in portrait mode on Google Pixel 2

    Matrix matrix = new Matrix();
    matrix.postRotate(-90);

    Bitmap bitmapOrg = BitmapFactory.decodeFile(imagePath);
    Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmapOrg, bitmapOrg.getWidth(), bitmapOrg.getHeight(), true);
    Bitmap rotatedBitmap = Bitmap.createBitmap(scaledBitmap, 0, 0, scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix, true);

    return rotatedBitmap;

_Originally posted by @aznxed in https://github.com/udacity/AdvancedAndroid_Emojify/issues/1#issuecomment-401564871_

LidorPrototype commented 4 years ago

I tried this solution and it still wont recognize my face in portrait mode, I'm using samsung galaxy s10+