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 DrawingUtilsis initialized with aCanvasRenderingContext2D. | |
| 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 ImageDataorHTMLImageElementas your data source and drawing the result onto aWebGL2RenderingContext, 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 aHTMLCanvasElementinstead. | |
| drawConnectors(landmarks, connections, style) | Draws lines between landmarks (given a connection graph).This method can only be used when DrawingUtilsis initialized with aCanvasRenderingContext2D. | |
| drawLandmarks(landmarks, style) | Draws circles onto the provided landmarks.This method can only be used when DrawingUtilsis initialized with aCanvasRenderingContext2D. | |
| 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 gpuContextto 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