decodeImageSegmenterResult function

ImageSegmenterResult decodeImageSegmenterResult(
  1. VisionResultData data
)

Decodes an Image Segmenter result.

Implementation

ImageSegmenterResult decodeImageSegmenterResult(VisionResultData data) {
  final category = data.result['categoryMask'] as List?;
  return ImageSegmenterResult(
    imageWidth: data.width,
    imageHeight: data.height,
    timestampMilliseconds: data.timestamp,
    confidenceMasks: _confidenceMasks(data.result['confidenceMasks']),
    categoryMask: category == null
        ? null
        : CategoryMask(
            width: category[0] as int,
            height: category[1] as int,
            categories: category[2] as Uint8List,
          ),
    qualityScores: switch (data.result['qualityScores']) {
      final Float32List scores => scores,
      final List scores => Float32List.fromList([
        for (final score in scores) _number(score),
      ]),
      _ => null,
    },
    labels: [
      for (final label in data.result['labels'] as List? ?? const []) '$label',
    ],
  );
}