-
Notifications
You must be signed in to change notification settings - Fork 61
API v1.2.0(C)
-
C API 目录
-
C API 详细中文说明
声明文件: modules/core/cmat/interface/basic_types_c.h
说明: 图像类型枚举
enum CFCVImageType {
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...
};
声明文件: modules/core/cmat/interface/basic_types_c.h
说明: 插值类型枚举
enum CInterpolationType {
INTER_NEAREST = 0, // 最近邻插值
INTER_LINEAR, // 双线性插值
INTER_CUBIC, // 立方插值
INTER_AREA, // 区域插值
WARP_INVERSE_MAP = 16 // 双线性插值(变换矩阵不求逆)
};
声明文件: modules/core/cmat/interface/basic_types_c.h
说明: 边缘填充类型
enum CBorderType {
BORDER_CONSTANT = 0, //!< `iiiiii|abcdefgh|iiiiiii` with some specified `i`
BORDER_REPLICATE = 1, //!< `aaaaaa|abcdefgh|hhhhhhh`
BORDER_REFLECT = 2, //!< `fedcba|abcdefgh|hgfedcb`
BORDER_WRAP = 3, //!< `cdefgh|abcdefgh|abcdefg`
BORDER_REFLECT_101 = 4, //!< `gfedcb|abcdefgh|gfedcba`
BORDER_TRANSPARENT = 5 //!< `uvwxyz|abcdefgh|ijklmno`
};
声明文件: modules/core/cmat/interface/basic_types_c.h
说明: 范数类型
enum NormType {
NORM_INF = 0, // 无穷范数,所有元素中绝对值最大的数
NORM_L1, // L1范数,各个元素绝对值之和
NORM_L2 // L2范数,各个元素平方和的平方根
};
声明文件: modules/core/cmat/interface/basic_types_c.h
typedef struct {
int width;
int height;
} CSize;
说明: 用于存储图像的宽高信息。
声明文件: modules/core/cmat/interface/basic_types_c.h
typedef struct {
int x;
int y;
} CPoint;
说明: 存储坐标点数据。
声明文件: modules/core/cmat/interface/basic_types_c.h
typedef struct {
int x; // 矩形左上角X坐标
int y; // 矩形左上角Y坐标
int width; // 矩形宽度
int height; // 矩形高度
} CRect;
说明: 用于存储矩形框信息。
声明文件: modules/core/cmat/interface/basic_types_c.h
typedef struct {
CSize2f size; // 旋转矩形宽高
CPoint2f center; // 旋转矩形中心点坐标
float angle; // 旋转矩形角度
} CRotatedRect;
说明: 用于存储带有角度信息的矩形框数据。
声明文件: modules/core/cmat/interface/basic_types_c.h
typedef struct {
double val[4];
} CScalar;
说明: 存储标量数据。存储数据上限为4,通常对应图像数据的不同channel。
声明文件: modules/core/cmat/interface/cmat.h
typedef struct {
int width; // 宽度
int height; // 高度
CFCVImageType type; // 图像类型
int channels; // 通道数量
int stride; // 单行数据字节数
uint64_t total_byte_size; // 数据总字节数
int type_byte_size; // 数据类型所占字节数
void* data; // 数据指针
} CMat;
说明: 图像数据结构体。需要手动进行创建/释放
。
声明文件: modules/core/cmat/interface/cmat.h
函数原型
CMat* fcvCreateCMat(int width, int height, CFCVImageType type);
说明: 创建CMat数据,返回指向CMat数据的指针。
参数 | 类型 | 说明 |
---|---|---|
width | int | 图像宽度 |
height | int | 图像高度 |
type | CFCVImageType | 图像数据类型 |
声明文件: modules/core/cmat/interface/cmat.h
函数原型
int fcvReleaseCMat(CMat* mat);
说明: 释放CMat数据。
参数 | 类型 | 说明 |
---|---|---|
mat | CMat* | 指向CMat数据的指针 |
声明文件: modules/core/base/interface/log_c.h
函数原型
void fcvSetLogStatus(int status);
说明: 设置日志开关。
参数 | 类型 | 说明 |
---|---|---|
status | int | 设置日志状态,默认开启。0:关闭日志;1:开启日志 |
声明文件: modules/core/base/interface/log_c.h
函数原型
int fcvGetLogStatus();
说明: 获取日志开关状态。
说明: 颜色空间转换枚举
enum CColorConvertType {
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,
};
说明: CColorConvertType类型名中的PA指代Package排列
,PL为Planar排列
,左侧指源格式,右侧指目标格式。
类型 | 源格式 | 目标格式 |
---|---|---|
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图像 |
说明: 翻转类型枚举
enum CFlipType {
X = 0, // 沿X轴翻转
Y, // 沿Y轴翻转
XY, // 沿XY轴翻转
};
声明文件: modules/img_transform/color_convert/interface/color_convert_c.h
int fcvCvtColor(CMat* src, CMat* dst, CColorConvertType cvt_type);
说明: 该接口主要用于输入图像数据连续的情况下,进行颜色空间转换,支持单通道、三通道,支持u8数据。
返回值为0表示转换成功,不为0则表示转换失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 输入数据指针 |
dst | CMat* | 输出数据指针(需要在调用前初始化,开辟空间,不可传空指针) |
cvt_type | CColorConvertType | 颜色空间转换类型 |
声明文件: modules/img_transform/copy_make_border/interface/copy_make_border_c.h
int fcvCopyMakeBorder(
CMat* src,
CMat* dst,
int top,
int bottom,
int left,
int right,
CBorderType border_type,
CScalar* value);
说明: 边界填充方法。返回值为0表示成功,不为0则失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像指针,仅支持PACKAGE格式图像,支持int8、int16、int32、f32以及f64数据 |
dst | CMat* | 目标图像指针(需要在调用前初始化,开辟空间,不可传空指针) |
top | int | 图像顶部填充长度 |
bottom | int | 图像底部填充长度 |
left | int | 图像左边填充长度 |
right | int | 图像右边填充长度 |
border_type | CBorderType | 边界填充算法,目前只支持BORDER_CONSTANT
|
value | CScalar* | 填充的像素值,默认为全0 |
声明文件: modules/img_transform/crop/interface/crop_c.h
int fcvCrop(CMat* src, CMat* dst, CRect* rect)
说明: 根据源图像内的指定子矩形框进行扣图(目前仅支持PACKAGE排列的RGB颜色空间数据,支持多通道1-4)。返回值为0表示裁剪成功,不为0表示裁剪失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
rect | CRect* | 裁剪矩形框地址 |
声明文件: modules/img_transform/flip/interface/flip_c.h
int fcvFlip(CMat* src, CMat* dst, CFlipType type);
说明: 图像翻转方法。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像,支持单通道,三通道,支持u8/f32 |
dst | CMat* | 目标图像(需要在调用前初始化,开辟空间,不可传空指针) |
type | CFlipType | 翻转类型,支持X轴、Y轴、XY轴翻转 |
声明文件: modules/img_transform/remap/interface/remap_c.h
int fcvRemap(
CMat* src,
CMat* dst,
CMat* map1,
CMat* map2,
CInterpolationType inter_type,
CBorderType border_method,
CScalar* border_value);
说明: 重映射计算。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址,支持单通道、三通道,支持u8/f32 |
dst | CMat* | 目标图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
map1 | CMat* | 表示(x,y)坐标点或是x坐标,类型为GRAY_S16或者GRAY_F32 |
map2 | CMat* | 表示y坐标 |
inter_type | CInterpolationType | 使用的插值算法,仅支持双线性插值 |
border_method | CBorderType | 使用的边界填充算法,仅支持常量填充 |
border_value | CScalar* | 边界填充值 |
声明文件: modules/img_transform/resize/interface/resize_c.h
int fcvResize(
CMat* src,
CMat* dst,
CInterpolationType interpolation);
说明: 图像缩放方法。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 输入图像地址,支持1,3,4通道 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
interpolation | CInterpolationType | 缩放插值计算方式,默认为双线性插值 |
声明文件: modules/img_transform/rotation/interface/rotation_c.h
int fcvTranspose(CMat* src, CMat* dst);
说明: 对源矩阵进行矩阵转置后输出结果至目标矩阵。返回值为0表示转置成功,不为0表示转置失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址,支持多通道,支持u8/f32 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
声明文件: modules/img_transform/subtract/interface/subtract_c.h
函数原型
int fcvSubtract(CMat* src, CScalar* scalar, CMat* dst);
说明:矩阵减法,各个通道像素值减去对应的scalar对应值。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 原图像地址,仅支持f32,支持多通道 |
scalar | CScalar* | 各通道需要减去的值 |
dst | CMat* | 目标图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
声明文件: modules/img_transform/warp_affine/interface/warp_affine_c.h
CMat* fcvGetAffineTransform(CPoint2f src[], CPoint2f dst[]);
说明: 该接口主要根据输入的映射源点坐标集与目标坐标集,计算仿射变换的系数矩阵。
返回值不为空表示成功,为空表示失败。
参数 | 类型 | 说明 |
---|---|---|
src | CPoint2f src[] | 源像素点集合 |
dst | CPoint2f dst[] | 目标像素点对象集合 |
声明文件: modules/img_transform/warp_affine/interface/warp_affine_c.h
CMat* fcvGetRotationMatrix2D(CPoint2f center, double angle, double scale);
说明: 该接口主要根据输入的中心点、旋转角度、缩放比例等参数计算仿射变换的系数矩阵。
返回值不为空表示成功,为空表示失败。
参数 | 类型 | 说明 |
---|---|---|
center | CPoint2f | 中心点坐标对象 |
angle | double | 旋转角度值 |
scale | double | 缩放系数值 |
声明文件: modules/img_transform/warp_affine/interface/warp_affine_c.h
int fcvWarpAffine(
CMat* src,
CMat* dst,
CMat* m,
CInterpolationType flag,
CBorderType border_method,
CScalar* border_value);
说明: 执行从源图像到目标图像的仿射变换操作。返回值为0表示变换成功,不为0表示变换失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址,支持多通道,支持u8/f32 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
m | CMat* | 变换系数矩阵**(目前仅支持:宽3,高2,单通道,float或double数据类型)** |
flag | CInterpolationType | 插值方式,仅支持双线性插值 |
border_method | CBorderType | 边界填充方式,仅支持常量填充 |
borderValue | CScalar* | 填充的边界值 |
声明文件: modules/img_transform/warp_perspective/interface/warp_perspective_c.h
CMat* fcvGetPerspectiveTransform(CPoint2f src[], CPoint2f dst[]);
说明: 计算透视变换变换矩阵。
参数 | 类型 | 说明 |
---|---|---|
src | Point2f[] | 源点 |
dst | Point2f[] | 目标点 |
声明文件: modules/img_transform/warp_perspective/interface/warp_perspective_c.h
int fcvWarpPerspective(
CMat* src,
CMat* dst,
CMat* m,
CInterpolationType flag,
CBorderType border_method,
CScalar* border_value);
说明: 透视变换。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图,支持多通道,支持u8/f32 |
dst | CMat* | 目标图 |
m | CMat* | 透视变换矩阵 |
flag | CInterpolationType | 插值变换,仅支持双线性插值 |
border_method | CBorderType | 边界填充方式,仅支持常量填充 |
border_value | CScalar* | 填充的值 |
声明文件: modules/img_transform/add_weighted/interface/add_weighted_c.h
int fcvAddWeighted(
CMat* src1,
double alpha,
CMat* src2,
double beta,
double gamma,
CMat* dst);
说明: 图像融合方法。
参数 | 类型 | 说明 |
---|---|---|
src1 | CMat* | 第一张输入图像地址,支持三通道 |
alpha | double | 第一张输入权重 |
src2 | CMat* | 第二张输入图像地址,支持三通道 |
beta | double | 第二张输入权重 |
gamma | double | 图一和图二融合后添加的值 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
声明文件: modules/img_transform/extract_channel/interface/extract_channel_c.h
int fcvExtractChannel(
CMat* src,
CMat* dst,
int index);
说明: 原图中提取某一个指定的单通道。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 输入图像地址,仅支持PKG_BGR_U8格式图像 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
index | int | 提取通道的索引位置 |
声明文件: modules/img_calculation/connected_componets/interface/connected_components_c.h
int fcvConnectedComponents(
CMat* src,
CMat* labels,
int connectivity,
CFCVImageType type);
说明: 连通域计算。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像,仅支持单通道 |
labels | CMat* | 标签 |
connectivity | int | 连通数 |
type | CFCVImageType | labels的数据类型,仅支持int32 |
声明文件: modules/img_calculation/find_homography/interface/find_homography_c.h
CMat* fcvFindHomography(
CPoint2f* src_pts,
CPoint2f* dst_pts,
int pts_num,
int method);
说明: 二维点对最优单映射变换矩阵计算。
参数 | 类型 | 说明 |
---|---|---|
src_points | CPoint2f* | 源点数据地址 |
dst_points | CPoint2f* | 目标数据点地址 |
pts_num | int | 点数量 |
method | int | 计算单映矩阵的方法,当前仅支持0 |
声明文件: modules/img_calculation/matrix_mul/interface/matrix_mul_c.h
CMat* fcvMatrixMul(CMat* src0, CMat* src1);
说明: 矩阵乘。
参数 | 类型 | 说明 |
---|---|---|
src0 | CMat* | 点乘左边矩阵,支持f32c1和f64c1 |
src1 | CMat* | 点乘右边矩阵,支持f32c1和f64c1 |
直接均值计算
声明文件: modules/img_calculation/mean/interface/mean_c.h
CScalar fcvMean(CMat* src);
说明: 对输入数据的各个通道,分别求均值(支持格式为1~4通道RGB颜色空间图像数据)。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像数据地址 |
声明文件: modules/img_calculation/mean/interface/mean_c.h
int fcvMeanStddev(CMat* src, CMat* mean, CMat* stddev);
说明: 对输入数据的各个通道,分别求均值和标准差,计算结果以矩阵形式存储(支持格式为1~4通道RGB颜色空间图像数据)
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像数据地址 |
mean | CMat* | 均值结果(需要在调用前初始化,开辟空间,不可传空指针) |
stddev | CMat* | 标准差结果(需要在调用前初始化,开辟空间,不可传空指针) |
声明文件: modules/img_calculation/min_area_rect/interface/min_area_rect_c.h
CRotatedRect fcvMinAreaRect(CPoint* pts, int pts_num);
说明: 计算最小外接矩形。
参数 | 类型 | 说明 |
---|---|---|
pts | CPoint* | 坐标点数据地址 |
pts_num | int | 坐标点数量 |
声明文件: modules/img_calculation/min_max_loc/interface/min_max_loc_c.h
int fcvMinMaxLoc(
CMat* src,
double* min_val,
double* max_val,
CPoint* min_loc,
CPoint* max_loc,
CMat* mask);
说明: 计算输入数据最大、最小值。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图地址,仅支持单通道 |
min_val | double* | 存储最小值的地址 |
max_val | double* | 存储最大值的地址 |
min_loc | CPoint* | 存储最小值在原图中的位置 |
max_loc | CPoint* | 存储最大值在原图中的位置 |
mask | CMat* | 指定参与计算的范围,与原图同样大小的gray_u8数据 |
声明文件: modules/img_calculation/norm/interface/norm_c.h
double fcvNorm(CMat* src, CNormType norm_type);
说明: 范数计算。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图地址,支持1-4通道 |
norm_type | CNormType | 范数计算类型,支持L1、L2、INF |
声明文件: modules/fusion_api/y420sp_to_resize_to_bgr/interface/y420sp_to_resize_to_bgr_c.h
int fcvNv12ToResizeToBgr(
CMat* src,
CMat* dst,
CInterpolationType interpolation);
说明: 对输入NV12格式源图像,缩放至目标图像大小,并同时转换为PACKAGE_BGR_U8格式。
返回值为0表示运行成功,不为0表示运行失败
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像数据地址,u8数据 |
dst | CMat* | 输出图像数据地址,u8数据(需要在调用前初始化,开辟空间,不可传空指针) |
interpolation | CInterpolationType | 使用的插值算法,仅支持双线性插值和最近邻插值 |
声明文件: modules/fusion_api/y420sp_to_resize_to_bgr/interface/y420sp_to_resize_to_bgr_c.h
int fcvNv21ToResizeToBgr(
CMat* src,
CMat* dst,
CInterpolationType interpolation);
说明: 对输入NV21格式源图像,缩放至目标图像大小,并同时转换为PACKAGE_BGR_U8格式
返回值为0表示运行成功,不为0表示运行失败
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像数据地址,u8数据 |
dst | CMat* | 输出图像数据地址,u8数据(需要在调用前初始化,开辟空间,不可传空指针) |
interpolation | CInterpolationType | 使用的插值算法,仅支持双线性插值和最近邻插值 |
声明文件: modules/fusion_api/normalize_to_submean_to_reorder/interface/normalize_to_submean_to_reorder_c.h
int fcvNormalizeToSubmeanToReorder(
CMat* src,
float mean_params[],
float std_params[],
int channel_reorder_index[],
CMat* dst,
bool output_package);
说明:对输入PACKAGE_BGR_U8格式源图像,按次序进行如下操作:
①根据输入参数设定三个通道的减法系数mean_params与除法系数std_params;
②遍历所有像素,每个u8通道值转换为浮点数,然后先减去对应通道的减法系数,再除以对应通道的除法系数;
③将计算结果由PACKAGE分布转换为PLANAR分布;
④根据输入的channel_reorder_index参数对各个通道planar顺序进行重新排序。
⑤输出package或者planar格式数据
返回值为0表示运行成功,不为0表示运行失败
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址,支持bgr/rgb u8/f32数据 |
mean_params | float[] | 三通道减法系数 |
std_params | float[] | 三通道除法系数 |
channel_reorder_index | int[] | 通道重排序索引,注:该参数支持为空对象引用(即不重排序),非空对象引用,则实际元素取值范围仅限[0, 1, 2] |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
output_package | bool | 输出数据是否为package格式,false:planar, true:package |
声明文件: modules/fusion_api/bgr_to_rgba_with_mask/interface/bgr_to_rgba_with_mask_c.h
int fcvBgrToRgbaWithMask(CMat* src, CMat* mask, CMat* dst);
说明: 输入bgr三通道package格式u8图像,与单通道u8图像(Alpha通道),输出rgba四通道package格式u8图像。
返回值为0表示运行成功,不为0表示运行失败
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址,仅支持三通道、u8、package格式数据 |
mask | CMat* | Alpha通道,单通道u8 |
dst | CMat* | 输出图像地址(需要在调用前初始化,开辟空间,不可传空指针) |
声明文件: modules/fusion_api/split_to_memcpy/interface/split_to_memcpy_c.h
int fcvSplitToMemcpy(CMat* src, float* dst);
说明: 输入bgr三通道package格式float图像,转换为planar形式,并拷贝至指定目标地址
返回值为0表示运行成功,不为0表示运行失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像地址,仅支持三/四通道package格式float图像 |
dst | float* | 输出数据地址 |
声明文件: modules/fusion_api/bgra_to_resize_to_bgr/interface/bgra_to_resize_to_bgr_c.h
int fcvBgraToResizeToBgr(
CMat* src,
CMat* dst,
CInterpolationType interpolation);
说明: 输入bgra四通道package格式图像,转换为bgr三通道package格式,并进行缩放。
返回值为0表示运行成功,不为0表示运行失败。
参数 | 类型 | 说明 |
---|---|---|
src | CMat* | 源图像,支持u8数据 |
dst | CMat* | 目标图像,支持u8数据(需要在调用前初始化,开辟空间,不可传空指针) |
interpolation | CInterpolationType | 插值方式,仅支持双线性插值 |
enum CLineType {
FILLED = -1,
LINE_4 = 4, //!< 4-connected line
LINE_8 = 8, //!< 8-connected line
LINE_AA = 16 //!< antialiased line, not support now
};
声明文件: modules/img_draw/circle/interface/circle_c.h
int fcvCircle(
CMat* img,
CPoint center,
int radius,
CScalar* color,
int thickness,
CLineType line_type,
int shift);
说明: 绘制圆形。
参数 | 类型 | 说明 |
---|---|---|
img | CMat* | 源图像 |
center | CPoint | 中心点坐标 |
radius | int | 半径 |
color | CScalar* | 颜色 |
thickness | int | 正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充 |
line_type | CLineType | 圆边界类型,支持LINE_4,LINE_8 |
shift | int | 中心坐标和半径值中的小数位数 |
声明文件: modules/img_draw/line/interface/line_c.h
int fcvLine(
CMat* img,
CPoint pt1,
CPoint pt2,
CScalar* color,
int thickness,
CLineType line_type,
int shift);
说明: 绘制直线。
参数 | 类型 | 说明 |
---|---|---|
img | CMat* | 源图像 |
pt1 | CPoint | 直线端点坐标 |
pt2 | CPoint | 直线端点坐标 |
color | CScalar* | 颜色 |
thickness | int | 正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充 |
line_type | CLineType | 边界类型 |
shift | int | 坐标点小数点位数 |
声明文件: modules/img_draw/fill_poly/interface/fill_poly_c.h
int fcvFillPoly(
CMat* img,
const CPoint** pts,
const int* npts,
int ncontours,
CScalar* color,
CLineType line_type,
int shift,
CPoint* offset);
说明: 多边形绘制填充。
参数 | 类型 | 说明 |
---|---|---|
img | CMat* | 源图像地址 |
pts | const Point** pts | 多边形曲线数组 |
npts | const int* | 多边形顶点计数器数组 |
ncontours | int | 曲线数 |
color | CScalar* | 颜色 |
line_type | CLineType | 边界类型 |
shift | int | 坐标点小数点位数 |
offset | CPoint* | 轮廓点偏移量 |
声明文件: modules/img_draw/poly_lines/interface/poly_lines_c.h
int fcvPolyLines(
CMat* img,
const CPoint2l* v,
int count,
bool is_closed,
const void* color,
int thickness,
CLineType line_type,
int shift);
说明: 多边形绘制。
参数 | 类型 | 说明 |
---|---|---|
img | CMat* | 源图像地址 |
v | const CPoint2l* | 多边形曲线数组 |
count | int | 绘制多边形的个数 |
is_closed | bool | 表示多边形是否闭合, 1:闭合,0:不闭合 |
thickness | int | 线条宽度 |
line_type | CLineType | 边界类型 |
shift | int | 坐标点小数点位数 |
声明文件: modules/imgcodecs/interface/imgcodecs_c.h
CMat* fcvImread(const char* file_name, int flags);
说明: 读取指定路径的图像文件,文件格式及后缀仅支持jpg或jpeg,(仅支持PKG_BGR_U8或GRAY_U8)
返回对象非空表示运行成功,为空则表示运行失败
参数 | 类型 | 说明 |
---|---|---|
file_name | const char* | 待读取文件路径 |
flags | int | 保留字段,可忽略 |
声明文件: modules/imgcodecs/interface/imgcodecs_c.h
int fcvImwrite(
const char* file_name,
CMat* img,
int quality);
说明: 将指定Mat数据写为图像文件,文件格式及后缀仅支持jpg或jpeg,输入Mat对象仅支持PKG_BGR_U8或GRAY_U8
返回true表示运行成功,false则表示运行失败
参数 | 类型 | 说明 |
---|---|---|
file_name | const char* | 待写入文件名 |
img | CMat* | 输出图像数据 |
quality | int | 图像压缩质量,值范围[0~100] |
声明文件: modules/imgcodecs/interface/imgcodecs_c.h
CMat* fcvImdecode(
unsigned char* buf,
uint64_t size,
int flags);
说明: 对输入标准JPEG或PNG数据,进行解码,返回Mat对象(仅支持PKG_BGR_U8或GRAY_U8)
返回对象非空表示运行成功,为空则表示运行失败
参数 | 类型 | 说明 |
---|---|---|
buf | const uint8_t* | 原始数据地址 |
size | uint64_t | 原始数据长度 |
flags | int | 保留字段,可忽略 |
声明文件: modules/imgcodecs/interface/imgcodecs_c.h
int fcvImencode(
const char* ext,
CMat* img,
unsigned char** buf,
uint64_t* buf_size,
int quality);
说明: 将指定Mat对象编码为标准JPEG或PNG格式数据,通过ext后缀进行格式指定,输入Mat对象仅支持PKG_BGR_U8或GRAY_U8
返回true表示运行成功,false则表示运行失败
参数 | 类型 | 说明 |
---|---|---|
ext | const char* ext | 编码格式后缀,.jpg 或.jpeg 表明为JPEG编码,.png 表明为PNG编码 |
img | CMat* | 输出图像数据地址 |
buf | uint64_t* | 结果数据 |
quality | int | 图像压缩质量,值范围[0~100](注:仅影响JPEG格式编码) |