文档中心
AI_Vision AI 美颜
文档中心
体验 App
SDK 中心
API 中心
常见问题
代码市场
进入控制台
立即注册
登录
中文站 English
  • 文档中心
  • AI 美颜
  • 基础功能
  • 背景分割

背景分割

更新时间:2024-01-12 15:33

1 功能简介

ZegoEffects SDK 提供背景分割功能,适用于在线教育、视频会议、美发、短视频等多种场景。

2 前提条件

在使用 ZegoEffects SDK 背景分割功能前,请确保:

  • 已在项目中集成 ZegoEffects SDK,实现基本的图像处理功能,详情请参考 快速开始 - 集成 SDK。
  • 导入 “SegmentationModel” 模型路径,详情请参考 快速开始 - 导入资源和模型。

3 使用步骤

背景分割包括人像分割、绿幕分割,以及背景虚化、背景马赛克等功能。

3.1 人像分割

使用人像分割功能前,请先导入对应的 “SegmentationModel” 模型文件,否则功能无法生效。详情请参考 快速开始 - 导入资源和模型。

  1. 调用 zego_effects_set_portrait_segmentation_background_path、zego_effects_set_portrait_segmentation_background_buffer 或 zego_effects_set_portrait_segmentation_background_texture 接口,设置人像分割使用的背景路径、背景 Buffer 或背景 Texture(三选一)。

    // 设置人像分割使用的背景路径(和设置 Buffer、Texture 的方式三选一即可)
    zego_effects_set_portrait_segmentation_background_path(handle, "MY_BACKGROUND_PATH", zego_effects_scale_mode_aspect_fill);
    
    // 设置人像分割使用的背景 Buffer(和设置路径、Texture 的方式三选一即可)
    zego_effects_set_portrait_segmentation_background_buffer(handle, buffer, buffer_length, param, zego_effects_scale_mode_aspect_fill);
    
    // 设置人像分割使用的背景 Texture(和设置路径、Buffer 的方式三选一即可)
    zego_effects_set_portrait_segmentation_background_texture(handle, texture_id, param, zego_effects_scale_mode_aspect_fill);
  2. 调用 zego_effects_enable_portrait_segmentation 接口开启人像分割功能。

    // 开启人像分割功能
    zego_effects_enable_portrait_segmentation(handle, true);

开启人像分割功能后,开发者可以根据需要进一步设置背景虚化、背景马赛克等功能。

人像分割背景虚化

调用 zego_effects_enable_portrait_segmentation_background_blur 接口开启人像分割背景虚化功能,打开虚化功能后可调用 zego_effects_set_portrait_segmentation_background_blur_param 接口设置 zego_effects_blur_param 对象的 “intensity” 参数,调整背景虚化的程度。

开启人像分割背景虚化功能后,会覆盖自定义背景及背景马赛克功能。

// 开启人像分割背景虚化
zego_effects_enable_portrait_segmentation_background_blur(handle, true);

// 设置人像分割背景虚化参数
zego_effects_blur_param param{};
param.intensity = 100;
zego_effects_set_portrait_segmentation_background_blur_param(handle, &param);

人像分割背景马赛克

调用 zego_effects_enable_portrait_segmentation_background_mosaic 接口开启人像分割背景马赛克功能,打开马赛克功能后可调用 zego_effects_set_portrait_segmentation_background_mosaic_param 接口设置 zego_effects_mosaic_param 对象的 “intensity” 参数参数,调整马赛克的程度。

开启人像分割背景马赛克功能后,会覆盖自定义背景及背景虚化功能。

// 开启人像分割背景马赛克
 zego_effects_enable_portrait_segmentation_background_mosaic(handle, true);

// 设置人像分割背景马赛克参数
zego_effects_mosaic_param param{};
param.intensity = 100;
param.type = zego_effects_mosaic_type::zego_effects_mosaic_type_square;
zego_effects_set_portrait_segmentation_background_mosaic_param(handle, &param);

3.2 绿幕分割

  1. 调用 zego_effects_set_chroma_key_background_path、zego_effects_set_chroma_key_background_buffer 或 zego_effects_set_chroma_key_background_texture 接口,设置绿幕分割使用的背景路径、背景 Buffer 或背景 Texture(三选一)。

    // 设置绿幕分割使用的背景路径(和设置 Buffer、Texture 的方式三选一即可)
    zego_effects_set_chroma_key_background_path(handle, "MY_BACKGROUND_PATH", zego_effects_scale_mode_aspect_fill);
    
    // 设置绿幕分割使用的背景 Buffer(和设置路径、Texture 的方式三选一即可)
    zego_effects_set_chroma_key_background_buffer(handle, buffer, buffer_length, param, zego_effects_scale_mode_aspect_fill);
    
    // 设置绿幕分割使用的背景 Texture(和设置路径、Buffer 的方式三选一即可)
    zego_effects_set_chroma_key_background_texture(handle, texture_id, param, zego_effects_scale_mode_aspect_fill);
  2. 调用 zego_effects_enable_chroma_key 接口开启绿幕分割功能,然后调用 zego_effects_chroma_key_param 接口设置参数,调整颜色容差、边缘平滑指数等。

    // 开启绿幕分割功能
    zego_effects_enable_chroma_key(handle, true);
    
    // 获取绿幕参数的默认值,并设置
    zego_effects_chroma_key_param param{};
    zego_effects_get_default_chroma_key_param(handle, &param);
    zego_effects_set_chroma_key_param(param);

开启绿幕分割功能后,开发者可以根据需要进一步设置背景虚化、背景马赛克等功能。

绿幕分割背景虚化

调用 zego_effects_enable_chroma_key_background_blur 接口开启绿幕背景虚化功能,打开虚化功能后可调用 zego_effects_set_chroma_key_background_blur_param 接口设置 zego_effects_blur_param 对下的 “intensity” 参数,调整虚化的程度。

开启绿幕分割背景虚化功能后,会覆盖自定义背景及背景马赛克功能。

// 开启绿幕分割背景虚化
zego_effects_enable_chroma_key_background_blur(handle, true);

// 设置绿幕分割背景虚化参数
zego_effects_blur_param param{};
param.intensity = 100;
zego_effects_set_chroma_key_background_blur_param(handle, &param);

绿幕分割背景马赛克

调用 zego_effects_enable_chroma_key_background_mosaic 接口开启绿幕背景马赛克功能,打开马赛克功能后可调用 zego_effects_set_chroma_key_background_mosaic_param 接口设置 zego_effects_mosaic_param 对象的 “intensity” 参数,调整马赛克的程度。

开启绿幕分割背景马赛克功能后,会覆盖自定义背景及背景虚化功能。

// 开启绿幕分割背景马赛克
zego_effects_enable_chroma_key_background_mosaic(handle, true);

// 设置绿幕分割背景马赛克参数
zego_effects_mosaic_param param;
param.intensity = 100;
param.type = zego_effects_mosaic_type::zego_effects_mosaic_type_square;
zego_effects_set_chroma_key_background_mosaic_param(handle, &param);
本篇目录
  • 免费试用
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    咨询客服
    微信扫码,24h在线

    联系我们

  • 文档反馈