AI视觉
  • iOS : Objective-C
  • Android
  • macOS
  • Windows
  • 产品简介
    • 概述
    • 发布日志
    • 计费说明
  • 下载
  • 体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 导入资源和模型
    • 在线鉴权
    • 实现图像处理
  • 基础功能
  • 最佳实践
  • 常见错误码
  • 客户端 API
  • 常见问题

背景分割

更新时间:2021-12-20 11:05

1 功能简介

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

2 前提条件

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

3 使用步骤

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

3.1 人像分割

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

  1. 调用 setPortraitSegmentationBackgroundPathsetPortraitSegmentationBackgroundBuffer 接口,设置人像分割使用的背景路径或背景 Buffer(二选一)。

    // 设置人像分割使用的背景路径(和设置 Buffer 的方式二选一即可)
    [self.effects setPortraitSegmentationBackgroundPath: @"MY_BACKGROUND_PATH" mode:ZegoEffectsScaleModeAspectFill];
    
    // 设置人像分割使用的背景 Buffer(和设置路径的方式二选一即可)
    [self.effects setPortraitSegmentationBackgroundBuffer:pixelbuffer mode:ZegoEffectsScaleModeAspectFill];
  2. 调用 enablePortraitSegmentation 接口开启人像分割功能。

    // 开启人像分割功能
    [self.effects enablePortraitSegmentation:YES];

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

人像分割背景虚化

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

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

// 开启人像分割背景虚化
[self.effects enablePortraitSegmentationBackgroundBlur:YES];

// 设置人像分割背景虚化参数
ZegoEffectsBlurParam *param = [[ZegoEffectsBlurParam alloc] init];
param.intensity = 100;
[self.effects setPortraitSegmentationBackgroundBlurParam:param];

人像分割背景马赛克

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

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

// 开启人像分割背景马赛克
[self.effects enablePortraitSegmentationBackgroundMosaic:YES];

// 设置人像分割背景马赛克参数
ZegoEffectsMosaicParam *param = [[ZegoEffectsMosaicParam alloc] init];
param.intensity = 100;
[self.effects setPortraitSegmentationBackgroundMosaicParam:param];

3.2 绿幕分割

  1. 调用 setChromaKeyBackgroundPathsetChromaKeyBackgroundBuffer 接口,设置绿幕分割使用的背景路径或背景 Buffer(二选一)。

    // 设置绿幕分割使用的背景路径(和设置 Buffer 的方式二选一即可)
    [self.effects setChromaKeyBackgroundPath: @"MY_BACKGROUND_PATH" mode:ZegoEffectsScaleModeAspectFill];
    
    // 设置绿幕分割使用的背景 Buffer(和设置路径的方式二选一即可)
    [self.effects setChromaKeyBackgroundBuffer:pixelbuffer mode:ZegoEffectsScaleModeAspectFill];
  2. 调用 enableChromaKey 接口开启绿幕分割功能,然后调用 setChromaKeyParam 接口设置参数,调整颜色容差、边缘平滑指数等。

    // 开启功能
    [self.effects enableChromaKey:YES]
    
    // 设置绿幕参数
    ZegoEffectsChromaKeyParam *param = [[ZegoEffectsChromaKeyParam alloc] init];
    [self.effects setChromaKeyParam:param];

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

绿幕分割背景虚化

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

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

// 开启绿幕分割背景虚化
[self.effects enableChromaKeyBackgroundBlur:YES];

// 设置绿幕分割背景虚化参数
ZegoEffectsBlurParam *param = [[ZegoEffectsBlurParam alloc] init];
param.intensity = 100;
[self.effects setChromaKeyBackgroundBlurParam:param];

绿幕分割背景马赛克

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

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

// 开启绿幕分割背景马赛克
[self.effects enableChromaKeyBackgroundMosaic:YES];
// 设置绿幕分割背景马赛克参数
ZegoEffectsMosaicParam *param = [[ZegoEffectsMosaicParam alloc] init];
param.intensity = 100;
[self.effects setChromaKeyBackgroundMosaicParam:param];