我正在创建一个使用Google ML Kit Image Segmentation using的应用程序MethodChannel
,它返回 a SegmentationMask
,它本质上是一个ByteBuffer。我已经能够成功地调用MethodChannel
以SegmentationMask
作为ByteBuffer
Java 通道返回。这需要返回到 Flutter 以应用于初始输入图像。
所以,本质上,我现在需要将它应用ByteBuffer
到 Flutter Image
- 整体流程是 -
- 将 Flutter 加载
Image
为字节数组 - 在 中执行分割
MethodChannel
,返回ByteArray
- 合并以上两个数组,生成最终图像
如何将获得的字节掩码应用于ByteArray
Flutter 中的 dart 字节数组 - 以修改初始图像?
用于处理的 Android Java 代码MethodChannel
-
private void handleDetection(MethodCall call, final MethodChannel.Result result) {
Map<String, Object> imageData = (Map<String, Object>) call.argument("imageData");
InputImage inputImage = InputImageConverter.getInputImageFromData(imageData, context, result);
if (inputImage == null) return;
imageSegmenter.process(inputImage)
.addOnSuccessListener(new OnSuccessListener<SegmentationMask>() {
@Override
public void onSuccess(SegmentationMask mask) {
/// ... return this as byte array (?) so that
/// ... it can be applied to original flutter image??
result.success(.../*mask as array?*/);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
result.error("Image Segmenter", e.toString(), null);
}
});
}