YOLOResult.fromMap constructor
YOLOResult.fromMap(
- Map map
Creates a YOLOResult from a map representation.
This factory constructor is primarily used for deserializing results received from the platform channel. The map should contain keys:
- 'classIndex': int
- 'className': String
- 'confidence': double
- 'boundingBox': Map with 'left', 'top', 'right', 'bottom'
- 'normalizedBox': Map with 'left', 'top', 'right', 'bottom'
- 'mask': (optional) List of List of double
- 'keypoints': (optional) List of double in x,y,confidence triplets
Implementation
factory YOLOResult.fromMap(Map<dynamic, dynamic> map) {
final classIndex = MapConverter.safeGetInt(map, 'classIndex');
final className = MapConverter.safeGetString(map, 'className');
final confidence = MapConverter.safeGetDouble(map, 'confidence');
final boxMap = MapConverter.convertToTypedMapSafe(
map['boundingBox'] as Map<dynamic, dynamic>?,
);
final boundingBox = boxMap != null
? MapConverter.convertBoundingBox(boxMap)
: Rect.zero;
final normalizedBoxMap = MapConverter.convertToTypedMapSafe(
map['normalizedBox'] as Map<dynamic, dynamic>?,
);
final normalizedBox = normalizedBoxMap != null
? MapConverter.convertBoundingBox(normalizedBoxMap)
: Rect.zero;
List<List<double>>? mask;
if (map.containsKey('mask') && map['mask'] != null) {
final maskData = map['mask'] as List<dynamic>;
mask = MapConverter.convertMaskData(maskData);
}
List<Point>? keypoints;
List<double>? keypointConfidences;
if (map.containsKey('keypoints') && map['keypoints'] != null) {
final keypointsData = map['keypoints'] as List<dynamic>;
final keypointResult = MapConverter.convertKeypoints(keypointsData);
keypoints = keypointResult.keypoints;
keypointConfidences = keypointResult.confidences;
}
return YOLOResult(
classIndex: classIndex,
className: className,
confidence: confidence,
boundingBox: boundingBox,
normalizedBox: normalizedBox,
mask: mask,
keypoints: keypoints,
keypointConfidences: keypointConfidences,
);
}