4.4 KiB
layout | title | parent | nav_order |
---|---|---|---|
default | JavaScript Utilities | MediaPipe in JavaScript | 1 |
JavaScript Utils for MediaPipe
{: .no_toc }
- TOC {:toc}
Utilities
MediaPipe offers utilities for enabling users to use the MediaPipe Examples with ease, and conveniently integrate with existing code.
The utilities MediaPipe currently has are ~
- Drawing Utilities,
- Camera Utilities, and
- Control Panel Utilities.
Drawing Utilities
These are for drawing on canvas using output from MediaPipe's solutions.
Currently, this includes three functions ~
- drawLandmarks
drawLandmarks(canvasContext, landmarks, {
fillColor: fillColor,
color: color,
lineWidth: lineWidth
}
This function is for drawing landmarks.
The value for the landmarks
parameter can be found using in the results
array.
- drawConnectors
drawConnectors(canvasContext, landmarks, LANDMARK_CONSTANTS, {
color: color,
lineWidth: lineWidth
})
This is a function used for plotting connectors in various MediaPipe Solutions.
The LANDMARK_CONSTANTS
are specific for every solution, so you could choose these there.
- drawRectangle
drawRectangle(canvasContext, {
width: width,
height: height,
xCenter: xCenter,
yCenter: yCenter,
rotation: rotation
}, {
color: color
})
This allows drawing of a rectangle, with a certain width, height and rotation given the coordinates of its location.
The quickest way to get acclimated is to look at the examples above. Each demo has a link to a CodePen so that you can edit the code and try it yourself. We have included a number of utility packages to help you get started:
- @mediapipe/drawing_utils - Utilities to draw landmarks and connectors.
- @mediapipe/camera_utils - Utilities to operate the camera.
- @mediapipe/control_utils - Utilities to show sliders and FPS widgets.
Note: See these demos and more at MediaPipe on CodePen
All of these solutions are staged in NPM. You can install any package
locally with npm install
. Example:
npm install @mediapipe/holistic.
If you would rather not stage these locally, you can rely on a CDN (e.g., jsDelivr). This will allow you to add scripts directly to your HTML:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/drawing_utils@0.1/drawing_utils.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/holistic@0.1/holistic.js" crossorigin="anonymous"></script>
</head>
Note: You can specify version numbers to both NPM and jsdelivr. They are
structured as <major>.<minor>.<build>
. To prevent breaking changes from
affecting your work, restrict your request to a <minor>
number. e.g.,
@mediapipe/holistic@0.1
.