光线识别SDK提供从图像中实时检测当前画面中的光线类型的能力,支持识别如下 7 种不同的光线。
类型值 | 类别名称 |
---|---|
0 | 室内黄 |
1 | 室内白 |
2 | 室内弱光 |
3 | 晴天 |
4 | 多云 |
5 | 夜晚 |
6 | 背光 |
详细接口说明查看头文件:bef_effect_ai_lightcls.h
BEF_SDK_API bef_effect_result_t bef_effect_ai_lightcls_create( bef_effect_handle_t *handle, const char *model_path, int fps );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 创建的光线识别句柄 |
model_path | const char * | 光线识别模型文件路径 |
fps | int | 检测间隔的帧数,即 fps 帧执行一次检测 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_effect_ai_lightcls_detect( bef_effect_handle_t handle, const unsigned char *image, bef_ai_pixel_format pixel_format, int image_width, int image_height, int image_stride, bef_ai_rotate_type orientation, bef_ai_light_cls_result *result );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 光线检测句柄 |
image | const unsigned char * | 模型类型,目前分大小模型 |
pixel_format | bef_ai_pixel_format | 模型文件的路径 |
image_width | int | 图片宽度 |
image_height | int | 图片高度 |
image_stride | int | 图片步长 |
orientation | bef_ai_rotate_type | 图片的旋转方向 |
result | bef_ai_light_cls_result | 检测结果,具体参见bef_ai_light_cls_result_st |
备注
typedef struct bef_ai_light_cls_result_st { int selected_index; // 光线类型 0~6,分别是 室内黄、室内白、室内弱光、晴天、多云、夜晚、背光 float prob; // 可信度 0~1 } bef_ai_light_cls_result;
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_effect_ai_lightcls_release( bef_effect_handle_t handle );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 光线检测句柄 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
// android BEF_SDK_API bef_effect_result_t bef_effect_ai_lightcls_check_license( JNIEnv* env, jobject context, bef_effect_handle_t handle, const char *licensePath ); // ios BEF_SDK_API bef_effect_result_t bef_effect_ai_lightcls_check_license( bef_effect_handle_t handle, const char *licensePath );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 光线检测句柄 |
licensePath | const char * | 授权文件字符串 |
context | jobject | 对应 Android 中的 Context |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
接口说明
详细接口说明查看文件:com.bytedance.labcv.effectsdk.LightClsDetect
public int init( Context context, String modelPath, String license, int fps)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
context | Context | 应用上下文 |
modelpath | String | 模型文件绝对路径 |
license | String | 授权文件绝对路径 |
fps | int | 检测间隔的帧数,即 fps 帧执行一次检测 |
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
public BefLightclsInfo detectLightCls( ByteBuffer buffer, BytedEffectConstants.PixlFormat pixlFormat, int imageWidth, int imageHeight, int imageStride, BytedEffectConstants.Rotation orientation)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
buffer | ByteBuffer | sdk设置参数类型 |
pixlFormat | BytedEffectConstants.PixlFormat | sdk设置参数值 |
imageWidth | int | 图片宽度 |
imageHeight | int | 图片高度 |
imageStride | int | 图片步长 |
orientation | BytedEffectConstants.Rotation | 图片旋转方向 |
备注
BytedEffectConstants.PixlFormat 见:
public enum PixlFormat { RGBA8888(0), BGRA8888(1), BGR888(2), RGB888(3), BEF_AI_PIX_FMT_YUV420P(5), BEF_AI_PIX_FMT_NV12(6), BEF_AI_PIX_FMT_NV21(7); private int value; PixlFormat(int value) { this.value = value; } public int getValue() { return value; } }
BytedEffectConstants.Rotation 见:
public enum Rotation { /** * 图像不需要旋转,图像中的人脸为正脸 * The image does not need to be rotated. The face in the image is positive */ CLOCKWISE_ROTATE_0(0), /** * 图像需要顺时针旋转90度,使图像中的人脸为正 * The image needs to be rotated 90 degrees clockwise so that the face in the image is positive */ CLOCKWISE_ROTATE_90(1), /** * 图像需要顺时针旋转180度,使图像中的人脸为正 * The image needs to be rotated 180 degrees clockwise so that the face in the image is positive */ CLOCKWISE_ROTATE_180(2), /** * 图像需要顺时针旋转270度,使图像中的人脸为正 * The image needs to be rotated 270 degrees clockwise so that the face in the image is positive */ CLOCKWISE_ROTATE_270(3); public int id = 0; Rotation(int id) { this.id = id; } }
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
public void release()
错误码请参考错误码表