Class Pose

java.lang.Object
com.codename1.ai.vision.Pose

public final class Pose extends Object

Portable body-pose result. Landmark coordinates use the normalized top-left-origin image space defined by VisionPoint; confidence is in the range 0..1.

Common backend-neutral names include nose, leftEye, rightEye, leftEar, rightEar, and the left/right forms of Shoulder, Elbow, Wrist, Hip, Knee, and Ankle. A backend can additionally report finer eye, mouth, finger, heel, foot, neck, or root landmarks using the same lower-camel-case convention. PoseLandmarks holds those names as constants.

PoseDetector detector = new PoseDetector();
detector.process(VisionImage.fromCameraFrame(frame)).ready(pose -> {
    Pose.Landmark wrist = pose.getLandmark(PoseLandmarks.RIGHT_WRIST);
    Pose.Landmark shoulder = pose.getLandmark(PoseLandmarks.RIGHT_SHOULDER);
    boolean raised = wrist != null && shoulder != null
            && wrist.getConfidence() > 0.6f
            && wrist.getPosition().getY() < shoulder.getPosition().getY();
    repsLabel.setText(raised ? "up" : "down");
});
  • Constructor Details

    • Pose

      public Pose(Pose.Landmark[] landmarks)
      Creates a pose without backend metadata.
      Parameters:
      landmarks - detected named body landmarks, defensively copied
    • Pose

      public Pose(Pose.Landmark[] landmarks, VisionMetadata metadata)
      Creates a pose with backend diagnostics.
      Parameters:
      landmarks - detected named body landmarks, defensively copied
      metadata - backend details, or null
  • Method Details

    • getLandmark

      public Pose.Landmark getLandmark(String name)

      Looks up one named joint.

      Backends detect different subsets of the skeleton, so a null return means "this backend did not report that joint for this frame", not "unsupported". Check Pose.Landmark.getConfidence() before trusting a position.

      Parameters:
      name - one of the PoseLandmarks constants
      Returns:
      the detected joint, or null when it was not reported
    • getLandmarks

      public Pose.Landmark[] getLandmarks()
      Returns:
      defensive copy of detected body landmarks
    • getMetadata

      public VisionMetadata getMetadata()
      Returns:
      backend metadata, or null when manually constructed