用于独立ML工具包SDK的FirebaseVisonImageMetadata的替换
我一直在从Firebase ML工具包迁移到新的独立ML工具包 创建用于独立ML工具包SDK的FirebaseVisonImageMetadata的替换,image,firebase-mlkit,google-mlkit,Image,Firebase Mlkit,Google Mlkit,我一直在从Firebase ML工具包迁移到新的独立ML工具包 创建FirebaseVisionImage时,我曾将旋转作为FirebaseVisionImageMetadata.rotation\u 180传递,但根据,已删除FirebaseVisionImageMetadata类 如何在使用新SDK类时设置旋转值 旧代码: mFaceDetector.detectInImage(FirebaseVisionImage.fromMediaImage( finalImage,
FirebaseVisionImage
时,我曾将旋转作为FirebaseVisionImageMetadata.rotation\u 180
传递,但根据,已删除FirebaseVisionImageMetadata
类
如何在使用新SDK类时设置旋转值
旧代码:
mFaceDetector.detectInImage(FirebaseVisionImage.fromMediaImage(
finalImage,
FirebaseVisionImageMetadata.ROTATION_180))
.addOnSuccessListener(faces -> {
// Some logic
});
这是通过将旋转值以度为单位传递为
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
});