Helper class to visualize the result of a MediaPipe Vision task.
Signature:
export declare class DrawingUtils
Constructors
Constructor | Modifiers | Description |
---|---|---|
(constructor)(gpuContext) | Creates a new DrawingUtils class. | |
(constructor)(cpuContext, gpuContext) | Creates a new DrawingUtils class. |
Methods
Method | Modifiers | Description |
---|---|---|
clamp(x, x0, x1) | static |
Restricts a number between two endpoints (order doesn't matter). |
close() | Frees all WebGL resources held by this class. | |
drawBoundingBox(boundingBox, style) | Draws a bounding box.This method can only be used when DrawingUtils is initialized with a CanvasRenderingContext2D . |
|
drawCategoryMask(mask, categoryToColorMap, background) | Draws a category mask using the provided category-to-color mapping. | |
drawCategoryMask(mask, categoryToColorMap, background) | Draws a category mask using the provided color array. | |
drawConfidenceMask(mask, defaultTexture, overlayTexture) | Blends two images using the provided confidence mask.If you are using an ImageData or HTMLImageElement as your data source and drawing the result onto a WebGL2RenderingContext , this method uploads the image data to the GPU. For still image input that gets re-used every frame, you can reduce the cost of re-uploading these images by passing a HTMLCanvasElement instead. |
|
drawConnectors(landmarks, connections, style) | Draws lines between landmarks (given a connection graph).This method can only be used when DrawingUtils is initialized with a CanvasRenderingContext2D . |
|
drawLandmarks(landmarks, style) | Draws circles onto the provided landmarks.This method can only be used when DrawingUtils is initialized with a CanvasRenderingContext2D . |
|
lerp(x, x0, x1, y0, y1) | static |
Linearly interpolates a value between two points, clamping that value to the endpoints. |
DrawingUtils.(constructor)
Creates a new DrawingUtils class.
Signature:
constructor(gpuContext: WebGL2RenderingContext);
Parameters
Parameter | Type | Description |
---|---|---|
gpuContext | WebGL2RenderingContext | The WebGL canvas rendering context to render into. If your Task is using a GPU delegate, the context must be obtained from its canvas (provided via setOptions({ canvas: .. }) ). |
DrawingUtils.(constructor)
Creates a new DrawingUtils class.
Signature:
constructor(cpuContext: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, gpuContext?: WebGL2RenderingContext);
Parameters
Parameter | Type | Description |
---|---|---|
cpuContext | CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D | The 2D canvas rendering context to render into. If you are rendering GPU data you must also provide gpuContext to allow for data conversion. |
gpuContext | WebGL2RenderingContext | A WebGL canvas that is used for GPU rendering and for converting GPU to CPU data. If your Task is using a GPU delegate, the context must be obtained from its canvas (provided via setOptions({ canvas: .. }) ). |
DrawingUtils.clamp()
Restricts a number between two endpoints (order doesn't matter).
Signature:
static clamp(x: number, x0: number, x1: number): number;
Parameters
Parameter | Type | Description |
---|---|---|
x | number | The number to clamp. |
x0 | number | The first boundary. |
x1 | number | The second boundary. The clamped value. |
Returns:
number
DrawingUtils.close()
Frees all WebGL resources held by this class.
Signature:
close(): void;
Returns:
void
DrawingUtils.drawBoundingBox()
Draws a bounding box.
This method can only be used when DrawingUtils
is initialized with a CanvasRenderingContext2D
.
Signature:
drawBoundingBox(boundingBox: BoundingBox, style?: DrawingOptions): void;
Parameters
Parameter | Type | Description |
---|---|---|
boundingBox | BoundingBox | The bounding box to draw. |
style | DrawingOptions | The style to visualize the boundin box. |
Returns:
void
DrawingUtils.drawCategoryMask()
Draws a category mask using the provided category-to-color mapping.
Signature:
drawCategoryMask(mask: MPMask, categoryToColorMap: Map<number, RGBAColor>, background?: RGBAColor | ImageSource): void;
Parameters
Parameter | Type | Description |
---|---|---|
mask | MPMask | A category mask that was returned from a segmentation task. |
categoryToColorMap | Map<number, RGBAColor> | A map that maps category indices to RGBA values. You must specify a map entry for each category. |
background | RGBAColor | ImageSource | A color or image to use as the background. Defaults to black. |
Returns:
void
DrawingUtils.drawCategoryMask()
Draws a category mask using the provided color array.
Signature:
drawCategoryMask(mask: MPMask, categoryToColorMap: RGBAColor[], background?: RGBAColor | ImageSource): void;
Parameters
Parameter | Type | Description |
---|---|---|
mask | MPMask | A category mask that was returned from a segmentation task. |
categoryToColorMap | RGBAColor[] | An array that maps indices to RGBA values. The array's indices must correspond to the category indices of the model and an entry must be provided for each category. |
background | RGBAColor | ImageSource | A color or image to use as the background. Defaults to black. |
Returns:
void
DrawingUtils.drawConfidenceMask()
Blends two images using the provided confidence mask.
If you are using an ImageData
or HTMLImageElement
as your data source and drawing the result onto a WebGL2RenderingContext
, this method uploads the image data to the GPU. For still image input that gets re-used every frame, you can reduce the cost of re-uploading these images by passing a HTMLCanvasElement
instead.
Signature:
drawConfidenceMask(mask: MPMask, defaultTexture: RGBAColor | ImageSource, overlayTexture: RGBAColor | ImageSource): void;
Parameters
Parameter | Type | Description |
---|---|---|
mask | MPMask | A confidence mask that was returned from a segmentation task. |
defaultTexture | RGBAColor | ImageSource | An image or a four-channel color that will be used when confidence values are low. |
overlayTexture | RGBAColor | ImageSource | An image or four-channel color that will be used when confidence values are high. |
Returns:
void
DrawingUtils.drawConnectors()
Draws lines between landmarks (given a connection graph).
This method can only be used when DrawingUtils
is initialized with a CanvasRenderingContext2D
.
Signature:
drawConnectors(landmarks?: NormalizedLandmark[], connections?: Connection[], style?: DrawingOptions): void;
Parameters
Parameter | Type | Description |
---|---|---|
landmarks | NormalizedLandmark[] | The landmarks to draw. |
connections | Connection[] | The connections array that contains the start and the end indices for the connections to draw. |
style | DrawingOptions | The style to visualize the landmarks. |
Returns:
void
DrawingUtils.drawLandmarks()
Draws circles onto the provided landmarks.
This method can only be used when DrawingUtils
is initialized with a CanvasRenderingContext2D
.
Signature:
drawLandmarks(landmarks?: NormalizedLandmark[], style?: DrawingOptions): void;
Parameters
Parameter | Type | Description |
---|---|---|
landmarks | NormalizedLandmark[] | The landmarks to draw. |
style | DrawingOptions | The style to visualize the landmarks. |
Returns:
void
DrawingUtils.lerp()
Linearly interpolates a value between two points, clamping that value to the endpoints.
Signature:
static lerp(x: number, x0: number, x1: number, y0: number, y1: number): number;
Parameters
Parameter | Type | Description |
---|---|---|
x | number | The number to interpolate. |
x0 | number | The x coordinate of the start value. |
x1 | number | The x coordinate of the end value. |
y0 | number | The y coordinate of the start value. |
y1 | number | The y coordinate of the end value. The interpolated value. |
Returns:
number