convertKeypoints static method

({List<double> confidences, List<Point> keypoints}) convertKeypoints(
  1. List keypointsData
)

Converts a list of keypoint data to Point objects.

This method centralizes the keypoint conversion logic that was duplicated in pose estimation result processing.

keypointsData The list of keypoint data (x, y, confidence triplets) Returns a list of Point objects and their confidence values

Implementation

static ({List<Point> keypoints, List<double> confidences}) convertKeypoints(
  List<dynamic> keypointsData,
) {
  final keypoints = <Point>[];
  final confidences = <double>[];

  for (var i = 0; i < keypointsData.length; i += 3) {
    if (i + 2 < keypointsData.length) {
      final x = keypointsData[i] is num
          ? (keypointsData[i] as num).toDouble()
          : 0.0;
      final y = keypointsData[i + 1] is num
          ? (keypointsData[i + 1] as num).toDouble()
          : 0.0;
      final confidence = keypointsData[i + 2] is num
          ? (keypointsData[i + 2] as num).toDouble()
          : 0.0;

      keypoints.add(Point(x, y));
      confidences.add(confidence);
    }
  }

  return (keypoints: keypoints, confidences: confidences);
}