You need to enable JavaScript to run this app.
导航
显著性分割
最近更新时间:2025.03.17 14:06:08首次发布时间:2025.03.17 14:06:08
我的收藏
有用
有用
无用
无用
简介

输入图像,算法输出代表图像中物体显著性的Mask。Mask值为0~255,值越高代表显著性越高
本算法为V4.5.2版本新增算法

技术规格
规格说明
支持平台Android、iOS
支持图像格式BGRA888、RGBA8888、BRG888、RGB888
C接口说明

详细接口说明查看头文件:
bef_effect_ai_saliency_matting.h

1.创建算法句柄

BEF_SDK_API
bef_effect_result_t bef_effect_ai_saliency_matting_create(bef_ai_saliency_matting_handle *handle);

函数说明:创建算法句柄
参数说明:

参数名参数类型参数说明
handlebef_ai_saliency_matting_handle*输出的算法句柄

返回值说明:
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

2.检查License

BEF_SDK_API
bef_effect_result_t bef_effect_ai_saliency_matting_check_license(bef_ai_saliency_matting_handle handle, const char* licensePath);

函数说明:检查license是否合法
参数说明:

参数名参数类型参数说明
handlebef_ai_saliency_matting_handle进行license校验的句柄
licensePathconst char*license存储文件路径

返回值说明:
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

3.设定算法模型文件

typedef enum{
    BEF_SALIENCY_MATTING_SMALL_MODEL = 0,
    BEF_SALIENCY_MATTING_MEDIUM_MODEL = 1,
    BEF_SALIENCY_MATTING_LARGE_MODEL = 2,
}bef_ai_saliency_matting_model_type;

BEF_SDK_API
bef_effect_result_t bef_effect_ai_saliency_matting_set_model(bef_ai_saliency_matting_handle handle, bef_ai_saliency_matting_model_type type, const char *modelPath);

函数说明:根据给定模型类型加载模型,会检查是否有
参数说明:

参数名参数类型参数说明
handlebef_ai_saliency_matting_handle进行模型初始化的句柄
typebef_ai_saliency_matting_model_type使用的模型类型
modelPathconst char*模型文件路径

返回值说明:
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

4.执行算法

BEF_SDK_API
bef_effect_result_t bef_effect_ai_saliency_matting_detect(bef_ai_saliency_matting_handle handle,
                                            const unsigned char *image,
                                            bef_ai_pixel_format pixelFormat,
                                            int width,
                                            int height,
                                            int stride,
                                            bef_ai_rotate_type rotation,
                                            bef_ai_saliency_matting_ret *result);

函数说明:进行算法处理
参数说明:

参数名参数类型参数说明
handlebef_ai_saliency_matting_handle已初始化的句柄
imageunsigned char*输入图像二进制数据地址
pixelFormatbef_ai_pixel_format图像格式
widthint输入图像宽度
heightint输入图像高度
strideint图像数据中每行占用字节数
rotationbef_ai_rotate_type图像旋转方向,通常认为头朝上为旋转角度为0
resultbef_ai_saliency_matting_ret*算法输出结果

resultmask成员指向一个大小为:width * height * sizeof(unsigned char)的内存空间。如果bef_ai_saliency_matting_ret结构中的mask成员为NULL,则将为算法分配适当大小的内存空间并将结果写入其中。 使用方将负责释放这个空间。 如果结构中的mask成员不为空,则假定使用方已经分配了适当的内存空间并直接将结果写入到mask成员指向的内存空间中。
返回值说明:
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

5.释放句柄

BEF_SDK_API
bef_effect_result_t bef_effect_ai_saliency_matting_release(bef_ai_saliency_matting_handle handle);

函数说明:释放算法句柄
参数说明:

参数名参数类型参数说明
handlebef_ai_saliency_matting_handle要释放的算法句柄

返回值说明:
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

Java接口

1.初始化算法

函数声明:

public int init()

返回值说明:
成功返回 0,失败返回相应错误码,具体请参考 bef_effect_ai_public_define.h

2.检查算法License

函数声明:

public int checkLicense(String licensePath)

函数参数说明:

参数名参数类型参数说明
licensePathString许可证文件的路径

返回值说明:
成功返回 0,失败返回相应错误码,具体请参考 bef_effect_ai_public_define.h

3.加载模型文件

根据算法模型的类型,从路径加载模型
函数声明:

public int setModel(String modelPath, EffectsSDKEffectConstants.SaliencyMattingModelType modleType)

函数参数说明:

参数名参数类型参数说明
modelPathString模型文件的路径
modleTypeSaliencyMattingModelType模型的类型,分为大、中、小三种

返回值说明:
成功返回 0,失败返回相应错误码,具体请参考 bef_effect_ai_public_define.h

4.执行算法

根据图片数据执行算法
函数声明:

public MattingMask process(ByteBuffer imgdata, EffectsSDKEffectConstants.PixlFormat pixelformat, int width, int height, int stride, EffectsSDKEffectConstants.Rotation orientation)

函数参数说明:

参数名参数类型参数说明
imgdataByteBuffer图片数据
pixelformatPixlFormat像素格式
widthint图片宽度
heightint图片高度
strideint图片数据中每行像素的数据大小
orientationRotation图片方向,通常认为地面在下,头朝上时Rotation为0

返回值说明:
成功返回 MattingMask,失败返回相应错误码,具体请参考 bef_effect_ai_public_define.h

5.释放算法

释放算法资源
函数声明:

public int release()

返回值说明:
成功返回 0,失败返回相应错误码,具体请参考 bef_effect_ai_public_define.h

MattingMask 类

该类为 SaliencyMatting 类的内部类,用于存储算法结果的Mask。

属性名类型说明
widthint宽度
heightint高度
bufferbyte[]Mask二进制数据
FAQ

如果出现任何异常,请查看是否有以下类型日志

答:建议首先查看以下tag输出Error类型的日志:
bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK

错误码

错误码请参考错误码表