Overview

1. spaceGearSDK AAR

Copy the spaceGearSDK-debug.aar library file to htSample/app/aar.

app/build.gradle

Set implementation AAR.


dependencies {
    .
    .
    .
    implementation files('aar/spaceGearSDK-debug.aar')
}

2. HandTracking init

MainActivity.java

HandTracking.getInstance().init(this);

3. Camera Preview Callback Mode

HandTracking.getInstance().setImageJpeg(data, false);
ex) HandTracking.getInstance().setImageYUV(640,480, data, false);

4. HandTracking Result draw

HandOverlayView.java

protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if (landmarkInfoList == null || landmarkInfoList.isEmpty()) return;

        for (int handIndex = 0; handIndex < landmarkInfoList.size(); handIndex++) {
            HandTrackingResult.LandmarkInfo info = landmarkInfoList.get(handIndex);
            float xScale = (float)canvasWidth / info.imgWidth;
            float yScale = (float)canvasHeight / info.imgHeight;
            List<HandTrackingResult.Point2> points = info.nativeLandmarksScreenPt2;
            if (points == null || points.size() < 21) continue;

            // Draw connections
            for (int[] pair : CONNECTIONS) {
                HandTrackingResult.Point2 p1 = points.get(pair[0]);
                HandTrackingResult.Point2 p2 = points.get(pair[1]);
                canvas.drawLine(p1.x * xScale, p1.y * yScale, p2.x * xScale, p2.y * yScale, linePaint);
            }

            for (int i = 0; i < points.size(); i++) {
                HandTrackingResult.Point2 pt = points.get(i);
                canvas.drawCircle(pt.x * xScale, pt.y * yScale, 10f, circlePaint);
            }
        }
    }

Receive hand tracking result values from the SDK and draw the coordinates on the canvas.

5. Diagram

Last updated