44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { Box } from './Box';
|
|
import { Dimensions, IDimensions } from './Dimensions';
|
|
import { IRect, Rect } from './Rect';
|
|
|
|
export class ObjectDetection {
|
|
private _score: number
|
|
private _classScore: number
|
|
private _className: string
|
|
private _box: Rect
|
|
private _imageDims: Dimensions
|
|
|
|
constructor(
|
|
score: number,
|
|
classScore: number,
|
|
className: string,
|
|
relativeBox: IRect,
|
|
imageDims: IDimensions
|
|
) {
|
|
this._imageDims = new Dimensions(imageDims.width, imageDims.height)
|
|
this._score = score
|
|
this._classScore = classScore
|
|
this._className = className
|
|
this._box = new Box(relativeBox).rescale(this._imageDims)
|
|
}
|
|
|
|
public get score(): number { return this._score }
|
|
public get classScore(): number { return this._classScore }
|
|
public get className(): string { return this._className }
|
|
public get box(): Box { return this._box }
|
|
public get imageDims(): Dimensions { return this._imageDims }
|
|
public get imageWidth(): number { return this.imageDims.width }
|
|
public get imageHeight(): number { return this.imageDims.height }
|
|
public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()) }
|
|
|
|
public forSize(width: number, height: number): ObjectDetection {
|
|
return new ObjectDetection(
|
|
this.score,
|
|
this.classScore,
|
|
this.className,
|
|
this.relativeBox,
|
|
{ width, height}
|
|
)
|
|
}
|
|
} |