mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Add tracking.js
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/// <reference path="tracking.d.ts" />
|
||||
|
||||
// All tracking tests below are code taken verbatim (or, as close as possible) from the tracking docs: https://trackingjs.com/docs.html
|
||||
|
||||
var colors = new tracking.ColorTracker(['magenta', 'cyan', 'yellow']);
|
||||
|
||||
colors.on('track', function(event) {
|
||||
if (event.data.length === 0) {
|
||||
// No colors were detected in this frame.
|
||||
} else {
|
||||
event.data.forEach(function(rect) {
|
||||
console.log(rect.x, rect.y, rect.height, rect.width, rect.color);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
tracking.track('#myVideo', colors);
|
||||
|
||||
var myTracker = new tracking.Tracker('target');
|
||||
|
||||
myTracker.on('track', function(event) {
|
||||
if (event.data.length === 0) {
|
||||
// No targets were detected in this frame.
|
||||
} else {
|
||||
event.data.forEach(function(data) {
|
||||
// Plots the detected targets here.
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var trackerTask = tracking.track('#myVideo', myTracker);
|
||||
|
||||
trackerTask.stop(); // Stops the tracking
|
||||
trackerTask.run(); // Runs it again anytime
|
||||
|
||||
tracking.ColorTracker.registerColor('green', function(r, g, b) {
|
||||
if (r < 50 && g > 200 && b < 50) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
var objects = new tracking.ObjectTracker(['face', 'eye', 'mouth']);
|
||||
|
||||
objects.on('track', function(event) {
|
||||
if (event.data.length === 0) {
|
||||
// No objects were detected in this frame.
|
||||
} else {
|
||||
event.data.forEach(function(rect) {
|
||||
// rect.x, rect.y, rect.height, rect.width
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
tracking.track('#myVideo', objects);
|
||||
Vendored
+40
@@ -0,0 +1,40 @@
|
||||
// Type definitions for Tracking.js v1.1.2
|
||||
// Project: https://github.com/eduardolundgren/tracking.js
|
||||
// Definitions by: Tim Perry <https://github.com/pimterry>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
declare module tracking {
|
||||
export class ColorTracker extends Tracker {
|
||||
constructor(colours: string[]);
|
||||
|
||||
static registerColor(name: string, predicate: (r: number, g: number, b: number) => boolean): void;
|
||||
}
|
||||
|
||||
export class ObjectTracker extends Tracker {
|
||||
constructor(objects: string[]);
|
||||
}
|
||||
|
||||
class Tracker {
|
||||
constructor(target: string);
|
||||
on(eventName: string, callback: (event: TrackEvent) => void): void;
|
||||
}
|
||||
|
||||
interface TrackEvent {
|
||||
data: TrackRect[];
|
||||
}
|
||||
|
||||
interface TrackRect {
|
||||
x: number;
|
||||
y: number;
|
||||
height: number;
|
||||
width: number;
|
||||
color: string;
|
||||
}
|
||||
|
||||
interface TrackerTask {
|
||||
stop(): void;
|
||||
run(): void;
|
||||
}
|
||||
|
||||
export function track(selector: string, tracker: tracking.Tracker): TrackerTask;
|
||||
}
|
||||
Reference in New Issue
Block a user