decodeImageSegmenterResult function
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',
],
);
}