NERTC VirtualBackground Windows&macOS SDK
宏定义 | 枚举 | 函数
matting_service.hpp 文件参考

浏览源代码.

宏定义

#define MATTING_SERVICE_API
 

枚举

enum  MattingColorFormat {
  MATTING_BGR , MATTING_RGB , MATTING_I420 , MATTING_NV12 ,
  MATTING_NV21
}
 背景图片格式 更多...
 

函数

MATTING_SERVICE_API void MattingInit (const char *model_path)
 SDK 初始化。 更多...
 
MATTING_SERVICE_API void MattingPredict (unsigned char *img_ptr, unsigned char *mask_ptr, int height, int width, MattingColorFormat format, int degree, bool flip_x)
 开始 AI 背景替换或背景虚化,并返回人像预测结果。 更多...
 
MATTING_SERVICE_API void MattingSetBackground (unsigned char *bg_ptr, int height, int width, MattingColorFormat format, int degree, bool flip_x)
 设置自定义背景。 更多...
 
MATTING_SERVICE_API void MattingActivateBlurMode (int alpha)
 激活背景虚化模式。 更多...
 
MATTING_SERVICE_API void MattingReset ()
 AI 虚拟背景功能状态重置。 更多...
 

宏定义说明

◆ MATTING_SERVICE_API

#define MATTING_SERVICE_API

枚举类型说明

◆ MattingColorFormat

背景图片格式

枚举值
MATTING_BGR 

BGR 格式。

MATTING_RGB 

RGB 格式。

MATTING_I420 

I420 格式。

MATTING_NV12 

NV12 格式。

MATTING_NV21 

NV21 格式。

函数说明

◆ MattingActivateBlurMode()

MATTING_SERVICE_API void MattingActivateBlurMode ( int  alpha)

激活背景虚化模式。

注解
  • 请在 MattingInit 之后调用此接口。
  • 该接口只是激活背景虚化模式,实际的背景虚化处理发生在 MattingPredict 接口调用期间。
参数
alpha背景虚化程度,取值范围为 [0, 100]。 建议将 alpha 设为 7,以实现一般场景下的虚化效果,您也可以根据需求动态调整。

◆ MattingInit()

MATTING_SERVICE_API void MattingInit ( const char *  model_path)

SDK 初始化。

该接口用于加载模型。

注解
请在使用 AI 虚拟背景功能之前调用此接口。
参数
model_path模型文件路径。对于 ncnn/mnn 模型,model_path 可设置为 nullptr。

◆ MattingPredict()

MATTING_SERVICE_API void MattingPredict ( unsigned char *  img_ptr,
unsigned char *  mask_ptr,
int  height,
int  width,
MattingColorFormat  format,
int  degree,
bool  flip_x 
)

开始 AI 背景替换或背景虚化,并返回人像预测结果。

注解
  • 调用此接口之前,需要先通过 MattingSetBackground 设置替换后的背景图片,或者通过 MattingActivateBlurMode 激活背景虚化模式。
  • MattingPredict 用于在每一帧数据中处理背景替换或背景虚化,推荐在 IRtcEngineEventHandlerEx::onCaptureVideoFrame 回调中处理。
参数
img_ptr原始图像指针数据,背景替换结果会原地写回该指针,不改变原始图像朝向、尺寸、格式。
mask_ptr人像预测结果,可用于后续自定义处理,例如人像替换等。
  • mask 朝向、尺寸与 img 相同;数值范围为 [0, 255]。数值越大,该像素预测为人像的概率越大。
  • mask 所需的内存空间,需要调用方提前一次性分配,大小为 height x width。
  • 抠图完成时,人像预测结果会同步写入 mask_ptr。
height背景图片高度,单位为像素(px)。
width背景图片宽度,单位为像素(px)。
formatimg_ptr 对应的数据格式。支持 BGR、RGB、I420、NV12、NV21 格式。
degree屏幕旋转角度。
flip_x是否水平翻转图像。

◆ MattingReset()

MATTING_SERVICE_API void MattingReset ( )

AI 虚拟背景功能状态重置。

注解
在每次进行 AI 背景替换或背景虚化、屏幕旋转方向变化或摄像头切换之前,均需要调用此接口,以清空之前的状态。

◆ MattingSetBackground()

MATTING_SERVICE_API void MattingSetBackground ( unsigned char *  bg_ptr,
int  height,
int  width,
MattingColorFormat  format,
int  degree,
bool  flip_x 
)

设置自定义背景。

注解
  • 请在 MattingInit 之后调用此接口。
  • 默认为纯黑色背景,您也可以通过 bg_ptr 参数指定背景图片。
参数
bg_ptr本地背景图片路径。
height背景图片高度,单位为像素(px)。
width背景图片宽度,单位为像素(px)。
format背景图片格式。支持 BGR、RGB、I420、NV12、NV21 格式。
degree屏幕旋转角度。
flip_x是否水平翻转图像。