bef_effect_ai_dynamic_gesture.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #ifndef ANDROIDDEMO_BEF_EFFECT_AI_DYNAMIC_GESTURE_H
  2. #define ANDROIDDEMO_BEF_EFFECT_AI_DYNAMIC_GESTURE_H
  3. #include "bef_effect_ai_public_define.h"
  4. #define BEF_AI_DYNAMIC_GESTURE_SWIPING_LEFT 0
  5. #define BEF_AI_DYNAMIC_GESTURE_SWIPING_RIGHT 1
  6. #define BEF_AI_DYNAMIC_GESTURE_SWIPING_DOWN 2
  7. #define BEF_AI_DYNAMIC_GESTURE_SWIPING_UP 3
  8. #define BEF_AI_DYNAMIC_GESTURE_SLIDING_TWO_FINGERS_LEFT 4
  9. #define BEF_AI_DYNAMIC_GESTURE_SLIDING_TWO_FINGERS_RIGHT 5
  10. #define BEF_AI_DYNAMIC_GESTURE_SLIDING_TWO_FINGERS_DOWN 6
  11. #define BEF_AI_DYNAMIC_GESTURE_ZOOMING_IN_WITH_FULL_HAND 7
  12. #define BEF_AI_DYNAMIC_GESTURE_ZOOMING_OUT_WITH_FULL_HAND 8
  13. #define BEF_AI_DYNAMIC_GESTURE_ZOOMING_IN_WITH_TWO_FINGERS 9
  14. #define BEF_AI_DYNAMIC_GESTURE_ZOOMING_OUT_WITH_TWO_FINGERS 10
  15. #define BEF_AI_DYNAMIC_GESTURE_THUMB_UP 11
  16. #define BEF_AI_DYNAMIC_GESTURE_THUMB_DOWN 12
  17. #define BEF_AI_DYNAMIC_GESTURE_SHAKING_HAND 13
  18. #define BEF_AI_DYNAMIC_GESTURE_STOP_SIGN 14
  19. #define BEF_AI_DYNAMIC_GESTURE_DRUMMING_FINGERS 15
  20. #define BEF_AI_DYNAMIC_GESTURE_NO_GESTURE 16
  21. #define BEF_MAX_GESTURE_HAND_NUM 2
  22. /**
  23. * @brief 模型参数类型
  24. *
  25. */
  26. typedef enum {
  27. BEF_AI_DYNGEST_REFRESH_FRAME_INTERVAL = 0, // 设置检测刷新帧数, 暂不支持
  28. BEF_AI_DYNGEST_NUM_REQ_FRAMES = 1, // 设置多帧处理动态手势输出结果
  29. BEF_AI_DYNGEST_FRAMES_INTERVAL = 2, // 设置隔帧处理
  30. BEF_AI_DYNAMIC_GESTURE_MODEL_GESTURE_CLS = 3, // 设置模型类型
  31. } bef_ai_dynamic_gesture_param_type;
  32. /**
  33. * @brief 封装预测接口的返回值
  34. *
  35. * @note 不同的算法,可以在这里添加自己的自定义数据
  36. */
  37. typedef struct {
  38. int action;
  39. float action_score;
  40. } bef_ai_dynamic_gesture_info;
  41. /// @brief 检测结果
  42. typedef struct {
  43. bef_ai_dynamic_gesture_info p_gestures[BEF_MAX_GESTURE_HAND_NUM]; ///< 检测到的动态手势信息
  44. int gesture_count; ///< 检测到的手势数量;
  45. } bef_ai_dynamic_gesture_ret;
  46. bef_effect_result_t DynamicGesture_ReleaseHandle(bef_effect_handle_t handle);
  47. BEF_SDK_API
  48. bef_effect_result_t bef_effect_ai_dynamic_gesture_create(bef_effect_handle_t *handle);
  49. BEF_SDK_API
  50. bef_effect_result_t bef_effect_ai_dynamic_gesture_init(bef_effect_handle_t handle, const char *modelPath);
  51. BEF_SDK_API
  52. bef_effect_result_t bef_effect_ai_dynamic_gesture_detect(bef_effect_handle_t handle,
  53. const unsigned char *image,
  54. bef_ai_pixel_format pixel_format,
  55. int image_width,
  56. int image_height,
  57. int image_stride,
  58. bef_ai_rotate_type orientation,
  59. int *gesture_info_num,
  60. bef_ai_dynamic_gesture_info **gesture_info);
  61. BEF_SDK_API
  62. bef_effect_result_t bef_effect_ai_dynamic_gesture_set_paramS(bef_effect_handle_t handle, bef_ai_dynamic_gesture_param_type type, const char *value);
  63. BEF_SDK_API
  64. bef_effect_result_t bef_effect_ai_dynamic_gesture_set_paramF(bef_effect_handle_t handle, bef_ai_dynamic_gesture_param_type type, float value);
  65. BEF_SDK_API
  66. bef_effect_result_t bef_effect_ai_dynamic_gesture_set_paramI(bef_effect_handle_t handle, bef_ai_dynamic_gesture_param_type type, int value);
  67. BEF_SDK_API
  68. bef_effect_result_t bef_effect_ai_dynamic_gesture_release(bef_effect_handle_t handle);
  69. /**
  70. * @brief 动态手势授权
  71. * @param [in] handle Created dynamic gesture handle
  72. * 已创建的动态手势句柄
  73. * @param [in] license 授权文件字符串
  74. * @param [in] length 授权文件字符串长度
  75. * @return If succeed return BEF_RESULT_SUC, other value please refer bef_effect_ai_public_define.h
  76. * 成功返回 BEF_RESULT_SUC, 授权码非法返回 BEF_RESULT_INVALID_LICENSE ,其它失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
  77. */
  78. BEF_SDK_API
  79. bef_effect_result_t bef_effect_ai_dynamic_gesture_check_license(bef_effect_handle_t handle, const char *licensePath);
  80. BEF_SDK_API
  81. bef_effect_result_t bef_effect_ai_dynamic_gesture_check_online_license(bef_effect_handle_t handle, const char *licensePath);
  82. #endif //ANDROIDDEMO_BEF_EFFECT_AI_DYNAMIC_GESTURE_H