0

我正在创建一个使用Google ML Kit Image Segmentation using的应用程序MethodChannel,它返回 a SegmentationMask,它本质上是一个ByteBuffer。我已经能够成功地调用MethodChannelSegmentationMask作为ByteBufferJava 通道返回。这需要返回到 Flutter 以应用于初始输入图像。

所以,本质上,我现在需要将它应用ByteBuffer到 Flutter Image- 整体流程是 -

  1. 将 Flutter 加载Image为字节数组
  2. 在 中执行分割MethodChannel,返回ByteArray
  3. 合并以上两个数组,生成最终图像

如何将获得的字节掩码应用于ByteArrayFlutter 中的 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);
                }
            });
        }
4

0 回答 0