import { Size } from './Size.d'; import { TermCriteria } from './TermCriteria.d'; import { RotatedRect } from './RotatedRect.d'; import { Rect } from './Rect.d'; import { Moments } from './Moments.d'; import { Contour } from './Contour.d'; import { Point2 } from './Point2.d'; import { Point3 } from './Point3.d'; import { Vec2 } from './Vec2.d'; import { Vec3 } from './Vec3.d'; import { Vec4 } from './Vec4.d'; export class Mat { readonly rows: number; readonly cols: number; readonly type: number; readonly channels: number; readonly depth: number; readonly dims: number; readonly empty: boolean; readonly step: number; readonly elemSize: number; readonly sizes: number[]; constructor(); constructor(channels: Mat[]); constructor(rows: number, cols: number, type: number); constructor(rows: number, cols: number, type: number, fillValue: number); constructor(rows: number, cols: number, type: number, fillValue: number[]); constructor(dataArray: number[][], type: number); constructor(dataArray: number[][][], type: number); constructor(data: Buffer, rows: number, cols: number, type?: number); abs(): Mat; absdiff(otherMat: Mat): Mat; accumulate(src: Mat, mask?: Mat): Mat; accumulateAsync(src: Mat, mask?: Mat): Promise; accumulateProduct(src1: Mat, src2: Mat, mask?: Mat): Mat; accumulateProductAsync(src1: Mat, src2: Mat, mask?: Mat): Promise; accumulateSquare(src: Mat, mask?: Mat): Mat; accumulateSquareAsync(src: Mat, mask?: Mat): Promise; accumulateWeighted(src: Mat, alpha: number, mask?: Mat): Mat; accumulateWeightedAsync(src: Mat, alpha: number, mask?: Mat): Promise; adaptiveThreshold(maxVal: number, adaptiveMethod: number, thresholdType: number, blockSize: number, C: number): Mat; adaptiveThresholdAsync(maxVal: number, adaptiveMethod: number, thresholdType: number, blockSize: number, C: number): Promise; add(otherMat: Mat): Mat; addWeighted(alpha: number, mat2: Mat, beta: number, gamma: number, dtype?: number): Mat; addWeightedAsync(alpha: number, mat2: Mat, beta: number, gamma: number, dtype?: number): Promise; and(otherMat: Mat): Mat; at(row: number, col: number): number; at(row: number, col: number): Vec2; at(row: number, col: number): Vec3; at(row: number, col: number): Vec4; at(idx: number[]): number; at(idx: number[]): Vec2; at(idx: number[]): Vec3; at(idx: number[]): Vec4; atRaw(row: number, col: number): number; atRaw(row: number, col: number): number[]; bgrToGray(): Mat; bgrToGrayAsync(): Promise; bilateralFilter(d: number, sigmaColor: number, sigmaSpace: number, borderType?: number): Mat; bilateralFilterAsync(d: number, sigmaColor: number, sigmaSpace: number, borderType?: number): Promise; bitwiseAnd(otherMat: Mat): Mat; bitwiseNot(): Mat; bitwiseOr(otherMat: Mat): Mat; bitwiseXor(otherMat: Mat): Mat; blur(kSize: Size, anchor?: Point2, borderType?: number): Mat; blurAsync(kSize: Size, anchor?: Point2, borderType?: number): Promise; boxFilter(ddepth: number, ksize: Size, anchor?: Point2, normalize?: boolean, borderType?: number): Mat; boxFilterAsync(ddepth: number, ksize: Size, anchor?: Point2, normalize?: boolean, borderType?: number): Promise; buildPyramid(maxLevel: number, borderType?: number): Mat[]; buildPyramidAsync(maxLevel: number, borderType?: number): Promise; calibrationMatrixValues(imageSize: Size, apertureWidth: number, apertureHeight: number): { fovx: number, fovy: number, focalLength: number, principalPoint: Point2, aspectRatio: number }; calibrationMatrixValuesAsync(imageSize: Size, apertureWidth: number, apertureHeight: number): Promise<{ fovx: number, fovy: number, focalLength: number, principalPoint: Point2, aspectRatio: number }>; canny(threshold1: number, threshold2: number, apertureSize?: number, L2gradient?: boolean): Mat; cannyAsync(threshold1: number, threshold2: number, apertureSize?: number, L2gradient?: boolean): Promise; compareHist(H2: Mat, method: number): number; compareHistAsync(H2: Mat, method: number): Promise; connectedComponents(connectivity?: number, ltype?: number): Mat; connectedComponentsAsync(connectivity?: number, ltype?: number): Promise; connectedComponentsWithStats(connectivity?: number, ltype?: number): { labels: Mat, stats: Mat, centroids: Mat }; connectedComponentsWithStatsAsync(connectivity?: number, ltype?: number): Promise<{ labels: Mat, stats: Mat, centroids: Mat }>; convertScaleAbs(alpha: number, beta: number): Mat; convertScaleAbsAsync(alpha: number, beta: number): Promise; convertTo(type: number, alpha?: number, beta?: number): Mat; convertToAsync(type: number, alpha?: number, beta?: number): Promise; copy(mask?: Mat): Mat; copyAsync(mask?: Mat): Promise; copyMakeBorder(top: number, bottom: number, left: number, right: number, borderType?: number, value?: number | Vec2 | Vec3 | Vec4): Mat; copyMakeBorderAsync(top: number, bottom: number, left: number, right: number, borderType?: number, value?: number | Vec2 | Vec3 | Vec4): Promise; copyTo(dst: Mat, mask?: Mat): Mat; copyToAsync(dst: Mat, mask?: Mat): Promise; cornerEigenValsAndVecs(blockSize: number, ksize?: number, borderType?: number): Mat; cornerEigenValsAndVecsAsync(blockSize: number, ksize?: number, borderType?: number): Promise; cornerHarris(blockSize: number, ksize: number, k: number, borderType?: number): Mat; cornerHarrisAsync(blockSize: number, ksize: number, k: number, borderType?: number): Promise; cornerMinEigenVal(blockSize: number, ksize?: number, borderType?: number): Mat; cornerMinEigenValAsync(blockSize: number, ksize?: number, borderType?: number): Promise; cornerSubPix(corners: Point2[], winSize: Size, zeroZone: Size, criteria: TermCriteria): Point2[]; cornerSubPixAsync(corners: Point2[], winSize: Size, zeroZone: Size, criteria: TermCriteria): Promise; correctMatches(points1: Point2[], points2: Point2[]): { newPoints1: Point2[], newPoints2: Point2[] }; correctMatchesAsync(points1: Point2[], points2: Point2[]): Promise<{ newPoints1: Point2[], newPoints2: Point2[] }>; countNonZero(): number; countNonZeroAsync(): Promise; cvtColor(code: number, dstCn?: number): Mat; cvtColorAsync(code: number, dstCn?: number): Promise; dct(flags?: number): Mat; dctAsync(flags?: number): Promise; decomposeEssentialMat(): { R1: Mat, R2: Mat, T: Vec3 }; decomposeEssentialMatAsync(): Promise<{ R1: Mat, R2: Mat, T: Vec3 }>; decomposeHomographyMat(K: Mat): { returnValue: number, rotations: Mat[], translations: Mat[], normals: Mat[] }; decomposeHomographyMatAsync(K: Mat): Promise<{ returnValue: number, rotations: Mat[], translations: Mat[], normals: Mat[] }>; decomposeProjectionMatrix(): { cameraMatrix: Mat, rotMatrix: Mat, transVect: Vec4, rotMatrixX: Mat, rotMatrixY: Mat, rotMatrixZ: Mat, eulerAngles: Mat }; decomposeProjectionMatrixAsync(): Promise<{ cameraMatrix: Mat, rotMatrix: Mat, transVect: Vec4, rotMatrixX: Mat, rotMatrixY: Mat, rotMatrixZ: Mat, eulerAngles: Mat }>; determinant(): number; dft(flags?: number, nonzeroRows?: number): Mat; dftAsync(flags?: number, nonzeroRows?: number): Promise; dilate(kernel: Mat, anchor?: Point2, iterations?: number, borderType?: number): Mat; dilateAsync(kernel: Mat, anchor?: Point2, iterations?: number, borderType?: number): Promise; distanceTransform(distanceType: number, maskSize: number, dstType?: number): Mat; distanceTransformAsync(distanceType: number, maskSize: number, dstType?: number): Promise; distanceTransformWithLabels(distanceType: number, maskSize: number, labelType?: number): { labels: Mat, dist: Mat }; distanceTransformWithLabelsAsync(distanceType: number, maskSize: number, labelType?: number): Promise<{ labels: Mat, dist: Mat }>; div(s: number): Mat; dot(): Mat; drawArrowedLine(pt0: Point2, pt1: Point2, color?: Vec3, thickness?: number, lineType?: number, shift?: number, tipLength?: number): void; drawChessboardCorners(patternSize: Size, corners: Point2[], patternWasFound: boolean): void; drawChessboardCornersAsync(patternSize: Size, corners: Point2[], patternWasFound: boolean): Promise; drawCircle(center: Point2, radius: number, color?: Vec3, thickness?: number, lineType?: number, shift?: number): void; drawContours(contours: Point2[][], contourIdx: number, color: Vec3, thickness?: number, lineType?: number, hierarchy?: Vec4[], maxLevel?: number, offset?: Point2): void; drawContoursAsync(contours: Point2[][], contourIdx: number, color: Vec3, thickness?: number, lineType?: number, hierarchy?: Vec4[], maxLevel?: number, offset?: Point2): Promise; drawEllipse(box: RotatedRect, color?: Vec3, thickness?: number, lineType?: number): void; drawEllipse(center: Point2, axes: Size, angle: number, startAngle: number, endAngle: number, color?: Vec3, thickness?: number, lineType?: number, shift?: number): void; drawFillConvexPoly(pts: Point2[], color?: Vec3, lineType?: number, shift?: number): void; drawFillPoly(pts: Point2[][], color?: Vec3, lineType?: number, shift?: number, offset?: Point2): void; drawLine(pt0: Point2, pt1: Point2, color?: Vec3, thickness?: number, lineType?: number, shift?: number): void; drawPolylines(pts: Point2[][], isClosed: boolean, color?: Vec3, thickness?: number, lineType?: number, shift?: number): void; drawRectangle(pt0: Point2, pt1: Point2, color?: Vec3, thickness?: number, lineType?: number, shift?: number): void; drawRectangle(rect: Rect, color?: Vec3, thickness?: number, lineType?: number, shift?: number): void; eigen(): Mat; eigenAsync(): Promise; equalizeHist(): Mat; equalizeHistAsync(): Promise; erode(kernel: Mat, anchor?: Point2, iterations?: number, borderType?: number): Mat; erodeAsync(kernel: Mat, anchor?: Point2, iterations?: number, borderType?: number): Promise; exp(): Mat; log(): Mat; filter2D(ddepth: number, kernel: Mat, anchor?: Point2, delta?: number, borderType?: number): Mat; filter2DAsync(ddepth: number, kernel: Mat, anchor?: Point2, delta?: number, borderType?: number): Promise; filterSpeckles(newVal: number, maxSpeckleSize: number, maxDiff: number): { newPoints1: Point2[], newPoints2: Point2[] }; filterSpecklesAsync(newVal: number, maxSpeckleSize: number, maxDiff: number): Promise<{ newPoints1: Point2[], newPoints2: Point2[] }>; find4QuadCornerSubpix(corners: Point2[], regionSize: Size): boolean; find4QuadCornerSubpixAsync(corners: Point2[], regionSize: Size): Promise; findChessboardCorners(patternSize: Size, flags?: number): { returnValue: boolean, corners: Point2[] }; findChessboardCornersAsync(patternSize: Size, flags?: number): Promise<{ returnValue: boolean, corners: Point2[] }>; findContours(mode: number, method: number, offset?: Point2): Contour[]; findContoursAsync(mode: number, method: number, offset?: Point2): Promise; findEssentialMat(points1: Point2[], points2: Point2[], method?: number, prob?: number, threshold?: number): { E: Mat, mask: Mat }; findEssentialMatAsync(points1: Point2[], points2: Point2[], method?: number, prob?: number, threshold?: number): Promise<{ E: Mat, mask: Mat }>; findNonZero(): Point2[]; findNonZeroAsync(): Promise; flattenFloat(rows: number, cols: number): Mat; flip(flipCode: number): Mat; flipAsync(flipCode: number): Promise; floodFill(seedPoint: Point2, newVal: number, mask?: Mat, loDiff?: number, upDiff?: number, flags?: number): { returnValue: number, rect: Rect }; floodFill(seedPoint: Point2, newVal: Vec3, mask?: Mat, loDiff?: Vec3, upDiff?: Vec3, flags?: number): { returnValue: number, rect: Rect }; floodFillAsync(seedPoint: Point2, newVal: number, mask?: Mat, loDiff?: number, upDiff?: number, flags?: number): Promise<{ returnValue: number, rect: Rect }>; floodFillAsync(seedPoint: Point2, newVal: Vec3, mask?: Mat, loDiff?: Vec3, upDiff?: Vec3, flags?: number): Promise<{ returnValue: number, rect: Rect }>; gaussianBlur(kSize: Size, sigmaX: number, sigmaY?: number, borderType?: number): Mat; gaussianBlurAsync(kSize: Size, sigmaX: number, sigmaY?: number, borderType?: number): Promise; getData(): Buffer; getDataAsync(): Promise; getDataAsArray(): number[][]; getDataAsArray(): number[][][]; getOptimalNewCameraMatrix(distCoeffs: number[], imageSize: Size, alpha: number, newImageSize?: Size, centerPrincipalPoint?: boolean): { out: Mat, validPixROI: Rect }; getOptimalNewCameraMatrixAsync(distCoeffs: number[], imageSize: Size, alpha: number, newImageSize?: Size, centerPrincipalPoint?: boolean): Promise<{ out: Mat, validPixROI: Rect }>; getRegion(region: Rect): Mat; goodFeaturesToTrack(maxCorners: number, qualityLevel: number, minDistance: number, mask?: Mat, blockSize?: number, gradientSize?: number, useHarrisDetector?: boolean, harrisK?: number): Point2[]; goodFeaturesToTrackAsync(maxCorners: number, qualityLevel: number, minDistance: number, mask?: Mat, blockSize?: number, gradientSize?: number, useHarrisDetector?: boolean, harrisK?: number): Promise; grabCut(mask: Mat, rect: Rect, bgdModel: Mat, fgdModel: Mat, iterCount: number, mode: number): void; grabCutAsync(mask: Mat, rect: Rect, bgdModel: Mat, fgdModel: Mat, iterCount: number, mode: number): Promise; guidedFilter(guide: Mat, radius: number, eps: number, ddepth?: number): Mat; guidedFilterAsync(guide: Mat, radius: number, eps: number, ddepth?: number): Promise; hDiv(otherMat: Mat): Mat; hMul(otherMat: Mat): Mat; houghCircles(method: number, dp: number, minDist: number, param1?: number, param2?: number, minRadius?: number, maxRadius?: number): Vec3[]; houghCirclesAsync(method: number, dp: number, minDist: number, param1?: number, param2?: number, minRadius?: number, maxRadius?: number): Promise; houghLines(rho: number, theta: number, threshold: number, srn?: number, stn?: number, min_theta?: number, max_theta?: number): Vec2[]; houghLinesAsync(rho: number, theta: number, threshold: number, srn?: number, stn?: number, min_theta?: number, max_theta?: number): Promise; houghLinesP(rho: number, theta: number, threshold: number, minLineLength?: number, maxLineGap?: number): Vec4[]; houghLinesPAsync(rho: number, theta: number, threshold: number, minLineLength?: number, maxLineGap?: number): Promise; idct(flags?: number): Mat; idctAsync(flags?: number): Promise; idft(flags?: number, nonzeroRows?: number): Mat; idftAsync(flags?: number, nonzeroRows?: number): Promise; inRange(lower: number, upper: number): Mat; inRange(lower: Vec3, upper: Vec3): Mat; inRangeAsync(lower: number, upper: number): Promise; inRangeAsync(lower: Vec3, upper: Vec3): Promise; integral(sdepth?: number, sqdepth?: number): { sum: Mat, sqsum: Mat, tilted: Mat }; integralAsync(sdepth?: number, sqdepth?: number): Promise<{ sum: Mat, sqsum: Mat, tilted: Mat }>; inv(): Mat; laplacian(ddepth: number, ksize?: number, scale?: number, delta?: number, borderType?: number): Mat; laplacianAsync(ddepth: number, ksize?: number, scale?: number, delta?: number, borderType?: number): Promise; matMul(B: Mat): Mat; matMulDeriv(B: Mat): { dABdA: Mat, dABdB: Mat }; matMulDerivAsync(B: Mat): Promise<{ dABdA: Mat, dABdB: Mat }>; matchTemplate(template: Mat, method: number, mask?: Mat): Mat; matchTemplateAsync(template: Mat, method: number, mask?: Mat): Promise; mean(): Vec4; meanAsync(): Promise; meanStdDev(mask?: Mat): { mean: Mat, stddev: Mat }; meanStdDevAsync(mask?: Mat): Promise<{ mean: Mat, stddev: Mat }>; medianBlur(kSize: number): Mat; medianBlurAsync(kSize: number): Promise; minMaxLoc(mask?: Mat): { minVal: number, maxVal: number, minLoc: Point2, maxLoc: Point2 }; minMaxLocAsync(mask?: Mat): Promise<{ minVal: number, maxVal: number, minLoc: Point2, maxLoc: Point2 }>; moments(): Moments; momentsAsync(): Promise; morphologyEx(kernel: Mat, morphType: number, anchor?: Point2, iterations?: number, borderType?: number): Mat; morphologyExAsync(kernel: Mat, morphType: number, anchor?: Point2, iterations?: number, borderType?: number): Promise; mul(s: number): Mat; mulSpectrums(mat2: Mat, dftRows?: boolean, conjB?: boolean): Mat; mulSpectrumsAsync(mat2: Mat, dftRows?: boolean, conjB?: boolean): Promise; norm(src2: Mat, normType?: number, mask?: Mat): number; norm(normType?: number, mask?: Mat): number; normalize(alpha?: number, beta?: number, normType?: number, dtype?: number, mask?: Mat): Mat; normalizeAsync(alpha?: number, beta?: number, normType?: number, dtype?: number, mask?: Mat): Promise; or(otherMat: Mat): Mat; padToSquare(color: Vec3): Mat; perspectiveTransform(m: Mat): Mat; perspectiveTransformAsync(m: Mat): Promise; pop_back(numRows?: number): Mat; pop_backAsync(numRows?: number): Promise; popBack(numRows?: number): Mat; popBackAsync(numRows?: number): Promise; push_back(mat: Mat): Mat; push_backAsync(mat: Mat): Promise; pushBack(mat: Mat): Mat; pushBackAsync(mat: Mat): Promise; putText(text: string, origin: Point2, fontFace: number, fontScale: number, color?: Vec3, thickness?: number, lineType?: number, bottomLeftOrigin?: boolean): void; putTextAsync(text: string, origin: Point2, fontFace: number, fontScale: number, color?: Vec3, thickness?: number, lineType?: number, bottomLeftOrigin?: boolean): Promise; pyrDown(size?: Size, borderType?: number): Mat; pyrDownAsync(size?: Size, borderType?: number): Promise; pyrUp(size?: Size, borderType?: number): Mat; pyrUpAsync(size?: Size, borderType?: number): Promise; recoverPose(E: Mat, points1: Point2[], points2: Point2[], mask?: Mat): { returnValue: number, R: Mat, T: Vec3 }; recoverPoseAsync(E: Mat, points1: Point2[], points2: Point2[], mask?: Mat): Promise<{ returnValue: number, R: Mat, T: Vec3 }>; rectify3Collinear(distCoeffs1: number[], cameraMatrix2: Mat, distCoeffs2: number[], cameraMatrix3: Mat, distCoeffs3: number[], imageSize: Size, R12: Mat, T12: Vec3, R13: Mat, T13: Vec3, alpha: number, newImageSize: Size, flags: number): { returnValue: number, R1: Mat, R2: Mat, R3: Mat, P1: Mat, P2: Mat, P3: Mat, Q: Mat, roi1: Rect, roi2: Rect }; rectify3CollinearAsync(distCoeffs1: number[], cameraMatrix2: Mat, distCoeffs2: number[], cameraMatrix3: Mat, distCoeffs3: number[], imageSize: Size, R12: Mat, T12: Vec3, R13: Mat, T13: Vec3, alpha: number, newImageSize: Size, flags: number): Promise<{ returnValue: number, R1: Mat, R2: Mat, R3: Mat, P1: Mat, P2: Mat, P3: Mat, Q: Mat, roi1: Rect, roi2: Rect }>; reduce(dim: number, rtype: number, dtype?: number): Mat; reduceAsync(dim: number, rtype: number, dtype?: number): Promise; reprojectImageTo3D(Q: Mat, handleMissingValues?: boolean, ddepth?: number): Mat; reprojectImageTo3DAsync(Q: Mat, handleMissingValues?: boolean, ddepth?: number): Promise; rescale(factor: number): Mat; rescaleAsync(factor: number): Promise; resize(rows: number, cols: number, fx?: number, fy?: number, interpolation?: number): Mat; resize(dsize: Size, fx?: number, fy?: number, interpolation?: number): Mat; resizeAsync(rows: number, cols: number, fx?: number, fy?: number, interpolation?: number): Promise; resizeAsync(dsize: Size, fx?: number, fy?: number, interpolation?: number): Promise; resizeToMax(maxRowsOrCols: number): Mat; resizeToMaxAsync(maxRowsOrCols: number): Promise; rodrigues(): { dst: Mat, jacobian: Mat }; rodriguesAsync(): Promise<{ dst: Mat, jacobian: Mat }>; rotate(rotateCode: number): Mat; rotateAsync(rotateCode: number): Promise; rqDecomp3x3(): { returnValue: Vec3, mtxR: Mat, mtxQ: Mat, Qx: Mat, Qy: Mat, Qz: Mat }; rqDecomp3x3Async(): Promise<{ returnValue: Vec3, mtxR: Mat, mtxQ: Mat, Qx: Mat, Qy: Mat, Qz: Mat }>; scharr(ddepth: number, dx: number, dy: number, scale?: number, delta?: number, borderType?: number): Mat; scharrAsync(ddepth: number, dx: number, dy: number, scale?: number, delta?: number, borderType?: number): Promise; seamlessClone(dst: Mat, mask: Mat, p: Point2, flags: number): Mat; seamlessCloneAsync(dst: Mat, mask: Mat, p: Point2, flags: number): Promise; sepFilter2D(ddepth: number, kernelX: Mat, kernelY: Mat, anchor?: Point2, delta?: number, borderType?: number): Mat; sepFilter2DAsync(ddepth: number, kernelX: Mat, kernelY: Mat, anchor?: Point2, delta?: number, borderType?: number): Promise; set(row: number, col: number, value: number): void; set(row: number, col: number, value: number[]): void; set(row: number, col: number, value: Vec2): void; set(row: number, col: number, value: Vec3): void; set(row: number, col: number, value: Vec4): void; setTo(value: number, mask?: Mat): Mat; setTo(value: Vec2, mask?: Mat): Mat; setTo(value: Vec3, mask?: Mat): Mat; setTo(value: Vec4, mask?: Mat): Mat; setToAsync(value: number, mask?: Mat): Promise; setToAsync(value: Vec2, mask?: Mat): Promise; setToAsync(value: Vec3, mask?: Mat): Promise; setToAsync(value: Vec4, mask?: Mat): Promise; sobel(ddepth: number, dx: number, dy: number, ksize?: number, scale?: number, delta?: number, borderType?: number): Mat; sobelAsync(ddepth: number, dx: number, dy: number, ksize?: number, scale?: number, delta?: number, borderType?: number): Promise; solve(mat2: Mat, flags?: number): Mat; solveAsync(mat2: Mat, flags?: number): Promise; split(): Mat[]; splitAsync(): Promise; splitChannels(): Mat[]; splitChannelsAsync(): Promise; sqrBoxFilter(ddepth: number, ksize: Size, anchor?: Point2, normalize?: boolean, borderType?: number): Mat; sqrBoxFilterAsync(ddepth: number, ksize: Size, anchor?: Point2, normalize?: boolean, borderType?: number): Promise; sqrt(): Mat; stereoRectify(distCoeffs1: number[], cameraMatrix2: Mat, distCoeffs2: number[], imageSize: Size, R: Mat, T: Vec3, flags?: number, alpha?: number, newImageSize?: Size): { R1: Mat, R2: Mat, P1: Mat, P2: Mat, Q: Mat, roi1: Rect, roi2: Rect }; stereoRectifyAsync(distCoeffs1: number[], cameraMatrix2: Mat, distCoeffs2: number[], imageSize: Size, R: Mat, T: Vec3, flags?: number, alpha?: number, newImageSize?: Size): Promise<{ R1: Mat, R2: Mat, P1: Mat, P2: Mat, Q: Mat, roi1: Rect, roi2: Rect }>; sub(otherMat: Mat): Mat; sum(): number; sum(): Vec2; sum(): Vec3; sum(): Vec4; sumAsync(): Promise; sumAsync(): Promise; sumAsync(): Promise; sumAsync(): Promise; threshold(thresh: number, maxVal: number, type: number): Mat; thresholdAsync(thresh: number, maxVal: number, type: number): Promise; transform(m: Mat): Mat; transformAsync(m: Mat): Promise; transpose(): Mat; triangulatePoints(projPoints1: Point2[], projPoints2: Point2[]): Mat; triangulatePointsAsync(projPoints1: Point2[], projPoints2: Point2[]): Promise; undistort(cameraMatrix: Mat, distCoeffs: Mat): Mat; undistortAsync(cameraMatrix: Mat, distCoeffs: Mat): Promise; validateDisparity(cost: Mat, minDisparity: number, numberOfDisparities: number, disp12MaxDisp?: number): void; validateDisparityAsync(cost: Mat, minDisparity: number, numberOfDisparities: number, disp12MaxDisp?: number): Promise; warpAffine(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Mat; warpAffineAsync(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Promise; warpPerspective(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Mat; warpPerspectiveAsync(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Promise; watershed(markers: Mat): Mat; watershedAsync(markers: Mat): Promise; release(): void; static eye(rows: number, cols: number, type: number): Mat; }