Вы уменьшаете масштаб без сохранения соотношения сторон, которое может быть причиной проблемы. 28 * 28 пикселей - это действительно изображение с очень низким разрешением, поэтому, возможно, вы не сможете его распознать.
Я уверен, что это из-за соотношения сторон. Сохраняйте пропорции - также старайтесь постепенно уменьшать ширину, пока она не будет распознана. Вот соответствующий код java попробуйте это: -
public static Bitmap resizeBitmapWithPreservedAspectRatio(Bitmap bmp,
int desiredWidth, int desiredHeight) {
Matrix mat = new Matrix();
float sx = (float) desiredWidth / bmp.getWidth();
float sy = (float) desiredHeight / bmp.getHeight();
if(desiredWidth>desiredHeight){
mat.postScale(sx, sx);
}else{
mat.postScale(sy, sy);
}
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
mat, false);
return bmp;
}
public static Bitmap resizeBitmapWithoutPreservingAspectRatio(Bitmap bmp,
int desiredWidth, int desiredHeight) {
Matrix mat = new Matrix();
float sx = (float) desiredWidth / bmp.getWidth();
float sy = (float) desiredHeight / bmp.getHeight();
mat.postScale(sx, sy);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
mat, false);
return bmp;
}