Skip to content

Commit

Permalink
BodySegmentation: Add example to demonstrate .data
Browse files Browse the repository at this point in the history
  • Loading branch information
gohai committed Jun 20, 2024
1 parent 4ad9c89 commit ed925fc
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
22 changes: 22 additions & 0 deletions examples/bodySegmentation-select-bodypart/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!--
👋 Hello! This is an ml5.js example made and shared with ❤️.
Learn more about the ml5.js project: https://ml5js.org/
ml5.js license and Code of Conduct: https://github.com/ml5js/ml5-next-gen/blob/main/LICENSE.md
This example demonstrates segmenting a person by body parts with ml5.bodySegmentation.
-->

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ml5.js bodySegmentation Parts Example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.9.2/p5.min.js"></script>
<script src="../../dist/ml5.js"></script>
</head>
<body>
<script src="sketch.js"></script>
</body>
</html>
51 changes: 51 additions & 0 deletions examples/bodySegmentation-select-bodypart/sketch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* 👋 Hello! This is an ml5.js example made and shared with ❤️.
* Learn more about the ml5.js project: https://ml5js.org/
* ml5.js license and Code of Conduct: https://github.com/ml5js/ml5-next-gen/blob/main/LICENSE.md
*
* This example demonstrates segmenting a person by body parts with ml5.bodySegmentation.
*/

let bodySegmentation;
let video;
let segmentation;

let options = {
maskType: "parts",
};

function preload() {
bodySegmentation = ml5.bodySegmentation("BodyPix", options);
}

function setup() {
createCanvas(640, 480);
// Create the video
video = createCapture(VIDEO);
video.size(width, height);
video.hide();

bodySegmentation.detectStart(video, gotResults);
}

function draw() {
background(255);
image(video, 0, 0);
if (segmentation) {
let gridSize = 10;
for (let x=0; x < video.width; x += gridSize) {
for (let y=0; y < video.height; y += gridSize) {
if (segmentation.data[y * video.width + x] == bodySegmentation.TORSO_FRONT) {
fill(255, 0, 0);
noStroke();
circle(x, y, gridSize);
}
}
}
}
}

// callback function for body segmentation
function gotResults(result) {
segmentation = result;
}

0 comments on commit ed925fc

Please sign in to comment.