Skip to content

API v1.2.0(Javascript)

taotianran edited this page Apr 19, 2023 · 12 revisions

API 文档(Javascript接口)

  1. Javascript API 目录

  2. Javascript API 详细说明

1. Javascript API 目录

2. API 详细说明

core

FCVImageType

说明: 图像类型

const FCVImageType {
    GRAY_U8 : 0,            // 单通道,unsigned char存储
    GRAY_U16,               // 单通道,unsigned short存储
    GRAY_S16,               // 单通道,signed short存储
    GRAY_S32,               // 单通道,int32存储
    GRAY_F32,               // 单通道,float32存储
    GRAY_F64,               // 单通道,double存储
    PLA_BGR_U8 : 20,        // 三通道,unsigned char存储,存储顺序:BBB...GGG...RRR...
    PLA_RGB_U8,             // 三通道,unsigned char存储,存储顺序:RRR...GGG...BBB...
    PKG_BGR_U8,             // 三通道,unsigned char存储,存储顺序:BGRBGR...
    PKG_RGB_U8,             // 三通道,unsigned char存储,存储顺序:RGBRGB...
    PLA_BGRA_U8,            // 四通道,unsigned char存储,存储顺序:BBB...GGG...RRR...AAA...
    PLA_RGBA_U8,            // 四通道,unsigned char存储,存储顺序:RRR...GGG...BBB...AAA...
    PKG_BGRA_U8,            // 四通道,unsigned char存储,存储顺序:BGRABGRA...
    PKG_RGBA_U8,            // 四通道,unsigned char存储,存储顺序:RGBARGBA...
    PLA_BGR_F32 : 40,       // 三通道,float存储,存储顺序:BBB...GGG...RRR...
    PLA_RGB_F32,            // 三通道,float存储,存储顺序:RRR...GGG...BBB...
    PKG_BGR_F32,            // 三通道,float存储,存储顺序:BGRBGR...
    PKG_RGB_F32,            // 三通道,float存储,存储顺序:RGBRGB...
    PLA_BGRA_F32,           // 四通道,float存储,存储顺序:BBB...GGG...RRR...AAA...
    PLA_RGBA_F32,           // 四通道,float存储,存储顺序:RRR...GGG...BBB...AAA...
    PKG_BGRA_F32,           // 四通道,float存储,存储顺序:BGRABGRA...
    PKG_RGBA_F32,           // 四通道,float存储,存储顺序:RGBARGBA...
    PKG_BGR_F64,            // 三通道,double存储,存储顺序:BGRBGR...
    PKG_RGB_F64,            // 三通道,double存储,存储顺序:RGBRGB...
    PKG_BGRA_F64,           // 四通道,double存储,存储顺序:BGRABGRA...
    PKG_RGBA_F64,           // 四通道,double存储,存储顺序:RGBARGBA...
    PKG_BGR565_U8,          // 三通道,unsigned char存储,存储顺序:BGRBGR...
    PKG_RGB565_U8,          // 三通道,unsigned char存储,存储顺序:RGBRGB...
    NV12 : 60,              // YUV420SP类型,像素占比为Y:V:U=4:1:1,存储顺序:YYY...UVUV...
    NV21,                   // YVU420SP类型,像素占比为Y:U:V=4:1:1,存储顺序:YYY...VUVU...
    I420,                   // YUV420P类型,像素占比为Y:U:V=4:1:1,存储顺序:YYY...UUU...VVV...
};

InterpolationType

说明: 插值类型

const InterpolationType = {
    INTER_NEAREST : 0,          // 最近邻插值
    INTER_LINEAR,               // 双线性插值
    INTER_CUBIC,                // 立方插值
    INTER_AREA,                 // 区域插值
    WARP_INVERSE_MAP : 16       // 双线性插值(变换矩阵不求逆)
};

BorderType

说明: 边缘填充类型

const BorderType = {
    BORDER_CONSTANT    : 0,
    BORDER_REPLICATE   : 1,
    BORDER_REFLECT     : 2,
    BORDER_WRAP        : 3,
    BORDER_REFLECT_101 : 4,
    BORDER_TRANSPARENT : 5
};

NormType

说明: 范数类型

const NormType = {
    NORM_INF       : 0,    // 无穷范数,所有元素中绝对值最大的数
    NORM_L1,               // L1范数,各个元素绝对值之和
    NORM_L2                // L2范数,各个元素平方和的平方根
};

RotateType

说明: 旋转类型

const RotateType = {
    CLOCK_WISE_90,     // 顺时针方向旋转90度
    CLOCK_WISE_180,    // 顺时针方向旋转180度
    CLOCK_WISE_270     // 顺时针方向旋转270度
};

Scalar

说明: 长度为4的数组。


Rect

说明: 矩形框类。

class Rect {
    constructor();
    constructor(x, y, width, height);

    setX(x);             // 设置矩形左上角顶点x坐标
    setY(y);             // 设置矩形左上角顶点y坐标
    setWidth(width);     // 设置矩形宽度
    setHeight(height);   // 设置矩形高度
    x();                 // 获取矩形左上角顶点x坐标
    y();                 // 获取矩形左上角顶点y坐标
    width();             // 获取矩形宽度
    height();            // 获取矩形高度
};

Size

说明: 存储宽高数据(整型数)。

class Size {
    constructor();
    constructor(width, height);

    setWidth(width);     // 设置宽度
    setHeight(height);   // 设置高度
    width();             // 获取宽度
    height();            // 获取高度
};

Size2f

说明: 存储宽高数据(浮点数)。

class Size2f {
    constructor();
    constructor(width, height);

    setWidth(width);     // 设置宽度
    setHeight(height);   // 设置高度
    width();             // 获取宽度
    height();            // 获取高度
};

Point

说明: 存储坐标数据(整型数)。

class Point {
    constructor();
    constructor(x, y);

    setX(x);     // 设置x坐标
    setY(y);     // 设置y左边
    x();         // 获取x坐标
    y();         // 获取y坐标
};

Point2f

说明: 存储坐标数据(浮点数)。

class Point2f {
    constructor();
    constructor(x, y);

    setX(x);     // 设置x坐标
    setY(y);     // 设置y左边
    x();         // 获取x坐标
    y();         // 获取y坐标
};

RotatedRect

说明: 存储旋转矩形框数据。

class RotatedRect {
    constructor();
    constructor(x, y, width, height, angle);
    constructor(center, size, angle);

    setCenter(center);     // 设置矩形中心点坐标
    setCenterX(x);         // 设置矩形中心点x坐标
    setCenterY(y);         // 设置矩形中心点y坐标
    setSize(size);         // 设置矩形宽高
    setWidth(width);       // 设置矩形宽度
    setHeight(height);     // 设置矩形高度
    setAngle(angle);       // 设置矩形旋转角度
    center();              // 获取矩形中心点坐标
    centerX();             // 获取矩形中心点x坐标
    centerY();             // 获取矩形中心点y坐标
    size();                // 获取矩形宽高
    width();               // 获取矩形宽度
    height();              // 获取矩形高度
    angle();               // 获取矩形角度
};

Mat

说明: 图像数据类。

class Mat {
    constructor();
    constructor(width, height, type);
    constructor(width, height, type, data, stride);

    width();                  // 获取图像宽度
    height();                 // 获取图像高度
    channels();               // 获取图像通道数
    type();                   // 返回图像类型
    data();                   // 返回数据数组
    clone();                  // 拷贝图像

    /* 
     * 缩放、平移,转化为指定数据类型
     * dst:目标图像
     * dst_type:指定目标图像的类型。
     * scale:缩放系数
     * shift:平移值
     */
    convertTo(dst, dst_type, scale, shift);              
};

img_transform

ColorConvertType

说明: 颜色空间转换类型

const ColorConvertType = {
    CVT_PA_BGR2GRAY : 0,
    CVT_PA_RGB2GRAY,

    CVT_PA_BGR2PA_RGB,
    CVT_PA_RGB2PA_BGR,
    CVT_PA_BGR2PA_BGRA,
    CVT_PA_RGB2PA_RGBA,
    CVT_PA_BGR2PA_RGBA,
    CVT_PA_RGB2PA_BGRA,
    CVT_PA_BGRA2PA_BGR,
    CVT_PA_RGBA2PA_RGB,
    CVT_PA_RGBA2PA_BGR,
    CVT_PA_BGRA2PA_RGB,
    CVT_PA_BGRA2PA_RGBA,
    CVT_PA_RGBA2PA_BGRA,

    CVT_GRAY2PA_RGB,
    CVT_GRAY2PA_BGR,
    CVT_GRAY2PA_BGRA,
    CVT_GRAY2PA_RGBA,

    CVT_PA_BGR2NV12,
    CVT_PA_BGR2NV21,
    CVT_PA_RGB2NV12,
    CVT_PA_RGB2NV21,

    CVT_PA_BGRA2NV12,
    CVT_PA_BGRA2NV21,
    CVT_PA_RGBA2NV12,
    CVT_PA_RGBA2NV21,

    CVT_NV122PA_RGB,
    CVT_NV212PA_RGB,
    CVT_NV122PA_BGR,
    CVT_NV212PA_BGR,
    CVT_I4202PA_BGR,

    CVT_NV122PA_BGRA,
    CVT_NV212PA_BGRA,
    CVT_NV122PA_RGBA,
    CVT_NV212PA_RGBA,

    CVT_PA_BGR2PL_BGR,  //bgrbgrbgr... convert to bbb...ggg...rrr
    CVT_PL_BGR2PA_BGR,  //bb..gg..rr.. convert to bgrbgr..

    CVT_PA_GRAY2PA_BGR565,
    CVT_PA_BGR2PA_BGR565,
    CVT_PA_RGB2PA_BGR565,
    CVT_PA_BGRA2PA_BGR565,
    CVT_PA_RGBA2PA_BGR565,

    CVT_PA_RGBA2PA_mRGBA,
};

说明: ColorConvertType类型名中的PA指代Package排列,PL为Planar排列,左侧指源格式,右侧指目标格式。

类型 源格式 目标格式
CVT_INVALID 无效的转换类型
CVT_PA_BGR2GRAY PACKAGE排列,三通道,BGR图像 单通道,灰度图
CVT_PA_RGB2GRAY PACKAGE排列,三通道,RGB图像 单通道,灰度图
CVT_PA_BGR2PA_RGB PACKAGE排列,三通道,BGR图像 PACKAGE排列,三通道,RGB图像
CVT_PA_RGB2PA_BGR PACKAGE排列,三通道,RGB图像 PACKAGE排列,三通道,BGR图像
CVT_PA_BGR2PA_BGRA PACKAGE排列,三通道,BGR图像 PACAKGE排列,四通道,BGRA图像
CVT_PA_RGB2PA_RGBA PACKAGE排列,三通道,RGB图像 PACAKGE排列,四通道,RGBA图像
CVT_PA_BGR2PA_RGBA PACKAGE排列,三通道,BGR图像 PACAKGE排列,四通道,RGBA图像
CVT_PA_RGB2PA_BGRA PACKAGE排列,三通道,RGB图像 PACAKGE排列,四通道,BGRA图像
CVT_PA_BGRA2PA_BGR PACKAGE排列,四通道,BGRA图像 PACKAGE排列,三通道,BGR图像
CVT_PA_RGBA2PA_RGB PACKAGE排列,四通道,RGBA图像 PACKAGE排列,三通道,RGB图像
CVT_PA_RGBA2PA_BGR PACKAGE排列,四通道,RGBA图像 PACKAGE排列,三通道,BGR图像
CVT_PA_BGRA2PA_RGB PACKAGE排列,四通道,BGRA图像 PACKAGE排列,三通道,RGB图像
CVT_PA_BGRA2PA_RGBA PACKAGE排列,四通道,BGRA图像 PACKAGE排列,四通道,RGBA图像
CVT_PA_RGBA2PA_BGRA PACKAGE排列,四通道,RGBA图像 PACKAGE排列,四通道,BGRA图像
CVT_GRAY2PA_RGB 单通道,灰度图 PACKAGE排列,三通道,RGB图像
CVT_GRAY2PA_BGR 单通道,灰度图 PACKAGE排列,三通道,BGR图像
CVT_GRAY2PA_BGRA 单通道,灰度图 PACKAGE排列,四通道,BGRA图像
CVT_GRAY2PA_RGBA 单通道,灰度图 PACKAGE排列,四通道,RGBA图像
CVT_PA_BGR2NV12 PACKAGE排列,三通道,BGR图像 NV12图像
CVT_PA_BGR2NV21 PACKAGE排列,三通道,BGR图像 NV21图像
CVT_PA_RGB2NV12 PACKAGE排列,三通道,RGB图像 NV12图像
CVT_PA_RGB2NV21 PACKAGE排列,三通道,RGB图像 NV21图像
CVT_PA_BGRA2NV12 PACKAGE排列,四通道,BGRA图像 NV12图像
CVT_PA_BGRA2NV21 PACKAGE排列,四通道,BGRA图像 NV21图像
CVT_PA_RGBA2NV12 PACKAGE排列,四通道,RGBA图像 NV12图像
CVT_PA_RGBA2NV21 PACKAGE排列,四通道,RGBA图像 NV21图像
CVT_NV122PA_RGB NV12图像 PACKAGE排列,三通道,RGB图像
CVT_NV212PA_RGB NV21图像 PACKAGE排列,三通道,RGB图像
CVT_NV122PA_BGR NV12图像 PACKAGE排列,三通道,BGR图像
CVT_NV212PA_BGR NV21图像 PACKAGE排列,三通道,BGR图像
CVT_I4202PA_BGR I420图像 PACKAGE排列,三通道,BGR图像
CVT_NV122PA_BGRA NV12图像 PACKAGE排列,四通道,BGRA图像
CVT_NV212PA_BGRA NV21图像 PACKAGE排列,四通道,BGRA图像
CVT_NV122PA_RGBA NV12图像 PACKAGE排列,四通道,RGBA图像
CVT_NV212PA_RGBA NV21图像 PACKAGE排列,四通道,RGBA图像
CVT_PA_BGR2PL_BGR PACKAGE排列,三通道,BGR图像 PLANAR排列,三通道,BGR图像
CVT_PL_BGR2PA_BGR PLANAR排列,三通道,BGR图像 PACKAGE排列,三通道,BGR图像
CVT_PA_GRAY2PA_BGR565 单通道,灰度图 PACKAGE排列,三通道,BGR图像
CVT_PA_BGR2PA_BGR565 PACKAGE排列,三通道,BGR图像 PACKAGE排列,三通道,BGR图像(存储位数不一样)
CVT_PA_RGB2PA_BGR565 PACKAGE排列,三通道,RGB图像 PACKAGE排列,三通道,BGR图像
CVT_PA_BGRA2PA_BGR565 PACKAGE排列,四通道,BGRA图像 PACKAGE排列,三通道,BGR图像
CVT_PA_RGBA2PA_BGR565 PACKAGE排列,四通道,RGBA图像 PACKAGE排列,三通道,BGR图像

FlipType

说明: 翻转类型

const FlipType = {
    X : 0,  // 沿X轴翻转
    Y,      // 沿Y轴翻转
    XY,     // 沿XY轴翻转
};

addWeighted

addWeighted(src1, alpha, src2, beta, gamma, dst);

说明: 图像融合方法。

参数 类型 说明
src1 Mat src 第一张输入图像,支持三通道
alpha Numbers 第一张输入权重
src2 Mat 第二张输入图像,支持三通道
beta Numbers 第二张输入权重
gamma Numbers 图一和图二融合后添加的值
dst Mat 输出图像

返回值: 0:执行成功;非0:执行失败。


cvtColor

cvt_color(src, dst, cvtType);

说明: 颜色空间转换接口。

参数 类型 说明
src Mat 输入图像的Mat对象
dst Mat 输出图像的Mat对象
cvtType ColorConvertType 颜色空间转换类型,详见ColorConvertType

返回值: 0:执行成功;非0:执行失败。


copyMakeBorder

copyMakeBorder(src, dst, top, bottom, left, right, borderType, value);

说明: 边界填充方法。

参数 类型 说明
src Mat 源图像,支持GRAY和PKG格式图像
dst Mat 目标图像
top Numbers 图像顶部需要填充的长度
bottom Numbers 图像底部需要填充的长度
left Numbers 图像左边需要填充的长度
right Numbers 图像右边需要填充的长度
borderType BorderTypes 边界填充算法,目前只支持BORDER_CONSTANT
value Scalar 填充的像素值

返回值: 0:执行成功;非0:执行失败。


crop

crop(src, dst, drect);

说明: 根据指定矩形框进行抠图(目前仅支持PACKAGE排列的RGB颜色空间数据,支持多通道1-4)。

参数 类型 说明
src Mat 源图像
dst Mat 输出图像
drect Rect 裁剪矩形框对象

返回值: 0:执行成功;非0:执行失败。


extractChannel

extractChannel(src, dst, index);

说明: 原图中提取某一个指定的单通道。

参数 类型 说明
src Mat 输入图像,仅支持PKG_BGR_U8格式图像
dst Mat 输出图像
index Numbers 提取通道的索引位置

flip

flip(src, dst, type);

说明: 图像翻转方法。

参数 类型 说明
src Mat 源图像,支持单通道,三通道,支持u8/f32
dst Mat 目标图像
type FlipType 翻转类型,支持X轴、Y轴、XY轴翻转

返回值: 0:执行成功;非0:执行失败。


resize

resize(src, dst, dsize, fx, fy, interpolation);

说明: 图像缩放方法。

参数 类型 说明
src Mat 输入图像Mat对象,支持1,3,4通道
dst Mat 输出图像Mat对象
dsize Size 目标宽高size对象,若已同时设置fx与fy参数,此项可忽略
fx Numbers 横向缩放系数(fx=目标宽度/输入图像宽度),若已设置dsize,此项可忽略
fy Numbers 纵向缩放系数(fy=目前高度/输入图像高度),若已设置dsize,此项可忽略
interpolation InterpolationType 缩放插值计算方式,默认为双线性插值

返回值: 0:执行成功;非0:执行失败。


transpose

transpose(src, dst);

说明: 矩阵转置。

参数 类型 说明
src Mat 源图像,支持多通道,支持u8/f32
dst Mat 输出图像

返回值: 0:执行成功;非0:执行失败。

Clone this wiki locally