У меня есть изображение, для которого мне нужно выполнить распознавание рукописного ввода на клиенте Android с помощью TFLite.
Чтобы проверить это, я вырезал некоторые части изображения и передал их модели, но получал очень низкую точностьнесмотря на точность модели на 90%.
Для дальнейшей отладки я проверял правильность своей режущей части.Следующий код - это тот, который я использую для обрезки своего изображения.
Bitmap test = Bitmap.createBitmap(src, 494,213,30, 33);
При этом
new Thread() {
@Override
public void run() {
try (FileOutputStream out = new FileOutputStream(path+"/test.jpg")) {
(test).compress(Bitmap.CompressFormat.JPEG, 100, out); // bmp is your Bitmap instance
// PNG is a lossless format, the compression factor (100) is ignored
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
Изображение должным образом сохраняется в моем хранилище.
Но я попробовал что-то вроде этого.
for(int i =0;i<30;i++){
for(int j=0;j<33;j++){
System.out.print(Color.red(test.getPixel(i,j))+" ");
}
System.out.println();
}
Я использовал матрицу и сформировал следующее изображение.
Как видите, мой исходный растр из 1 вращается.
Может кто-нибудь объяснить, почему это происходит ??И некоторый альтернативный подход к этому также поможет
Заранее спасибо.
Обновление: Я попробовал следующее
ExifInterface ei= null;
try {
ei = new ExifInterface(root+"/test.jpg");
} catch (IOException e) {
e.printStackTrace();
}
int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_UNDEFINED);
System.out.println("Orientation is "+orientation);
Мой вывод:
Ориентация 0