UNPKG

react-visual-annotator

Version:

Powerful React image and video annotation tool for machine learning, computer vision, and AI training data creation. Features rotatable bounding boxes, polygons, keypoints, segmentation with TypeScript support and Material-UI components.

135 lines (134 loc) 3.11 kB
export type BaseRegion = { id: string | number; cls?: string; locked?: boolean; visible?: boolean; color: string; editingLabels?: boolean; highlighted?: boolean; tags?: Array<string>; comment?: string; }; export type Point = BaseRegion & { type: "point"; x: number; y: number; }; export type PixelRegion = (BaseRegion & { type: "pixel"; sx: number; sy: number; w: number; h: number; src: string; }) | (BaseRegion & { type: "pixel"; points: Array<[number, number]>; }); export type Box = BaseRegion & { type: "box"; x: number; y: number; w: number; h: number; rotation?: number; }; export type Polygon = BaseRegion & { type: "polygon"; open?: boolean; points: Array<[number, number]>; }; export type Line = BaseRegion & { type: "line"; x1: number; y1: number; x2: number; y2: number; }; export type ExpandingLine = BaseRegion & { type: "expanding-line"; points: Array<{ x: number; y: number; angle: number | null; width: number | null; }>; expandingWidth?: number; candidatePoint?: { x: number; y: number; }; unfinished?: boolean; }; export type KeypointDefinition = BaseRegion & { label: string; color: string; defaultPosition: [number, number]; }; export type KeypointId = string; export type KeypointsDefinition = { [id: string]: { connections: Array<[KeypointId, KeypointId]>; landmarks: { [key: KeypointId]: KeypointDefinition; }; }; }; export type Keypoints = BaseRegion & { type: "keypoints"; keypointsDefinitionId: string; points: { [key: string]: { x: number; y: number; }; }; open?: boolean; }; export type Region = Point | PixelRegion | Box | Polygon | ExpandingLine | Keypoints; export declare const getEnclosingBox: (region: Region | Line) => { x: number; y: number; w: number; h: number; }; export declare const moveRegion: (region: Region, x: number, y: number) => (BaseRegion & { type: "pixel"; sx: number; sy: number; w: number; h: number; src: string; }) | (BaseRegion & { type: "pixel"; points: Array<[number, number]>; }) | Polygon | ExpandingLine | Keypoints | { x: number; y: number; id: string | number; cls?: string | undefined; locked?: boolean | undefined; visible?: boolean | undefined; color: string; editingLabels?: boolean | undefined; highlighted?: boolean | undefined; tags?: string[] | undefined; comment?: string | undefined; type: "point"; } | { x: number; y: number; id: string | number; cls?: string | undefined; locked?: boolean | undefined; visible?: boolean | undefined; color: string; editingLabels?: boolean | undefined; highlighted?: boolean | undefined; tags?: string[] | undefined; comment?: string | undefined; type: "box"; w: number; h: number; rotation?: number | undefined; };