1

我一直在从 Firebase ML Kit 迁移到新的独立 ML Kit。

在创建时,FirebaseVisionImage我曾经将旋转传递为FirebaseVisionImageMetadata.ROTATION_180,但根据文档FirebaseVisionImageMetadata该类已被删除。

使用新的 SDK 类时如何设置旋转值?

旧代码:

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

1 回答 1

1

这可以通过将旋转值传递为度数来解决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值的想法。180270int

因此,我们可以将旋转传递为:

mFaceDetector.process(InputImage.fromMediaImage(finalImage, 180)).addOnSuccessListener(faces -> {
     // Some logic
});
于 2020-07-14T10:45:36.450 回答