Замена FirebaseVisonImageMetadata для автономных SDK ML Kit - PullRequest
0 голосов
/ 14 июля 2020

Я перехожу на новый автономный ML Kit из Firebase ML Kit.

При создании FirebaseVisionImage я использовал ротацию как FirebaseVisionImageMetadata.ROTATION_180, но в соответствии с документацией , класс FirebaseVisionImageMetadata был удален.

Как установить значение поворота при использовании новых классов SDK?

Старый код:

 mFaceDetector.detectInImage(FirebaseVisionImage.fromMediaImage(
       finalImage, 
       FirebaseVisionImageMetadata.ROTATION_180))
            .addOnSuccessListener(faces -> {
                 // Some logic
             });

1 Ответ

1 голос
/ 14 июля 2020

Это было решено путем простой передачи значений поворота в градусах как int.

Поскольку новый SDK требует InputImage вместо FirebaseVisionImage, его реализация метода fromMediaImage дает представление. Вот функция:

@NonNull
@RequiresApi(19)
public static InputImage fromMediaImage(@NonNull Image var0, int var1) {
    long var2 = SystemClock.elapsedRealtime();
    Preconditions.checkNotNull(var0, "Please provide a valid image");
    Preconditions.checkArgument(var1 == 0 || var1 == 90 || var1 == 180 || var1 == 270, "Invalid rotation. Only 0, 90, 180, 270 are supported currently.");

    // ...other logic
}

Это дает представление о том, что новая функция хочет, чтобы второй параметр был как 0, 90, 180 или 270 как int значения.

Следовательно, мы можем передать вращение как:

mFaceDetector.process(InputImage.fromMediaImage(finalImage, 180)).addOnSuccessListener(faces -> {
     // Some logic
});
...