bef_effect_ai_skyseg.h 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //
  2. // bef_effect_ai_skyseg.h
  3. //
  4. //
  5. #ifndef bef_effect_ai_skyseg_h
  6. #define bef_effect_ai_skyseg_h
  7. #include "bef_effect_ai_public_define.h"
  8. #if defined(__ANDROID__) || defined(TARGET_OS_ANDROID)
  9. #include<jni.h>
  10. #endif
  11. typedef unsigned long long bef_ai_skyseg_handle;
  12. /**
  13. * @brief 创建句柄
  14. * @param [out] handle Created skyseg handle
  15. * @return If succeed return BEF_RESULT_SUC, other value please see bef_effect_ai_public_define.h
  16. * 成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
  17. */
  18. BEF_SDK_API bef_effect_result_t
  19. bef_effect_ai_skyseg_create_handle(bef_ai_skyseg_handle* handle);
  20. /*
  21. * @brief 从文件初始化模型参数
  22. **/
  23. BEF_SDK_API bef_effect_result_t
  24. bef_effect_ai_skyseg_init_model(bef_ai_skyseg_handle handle,
  25. const char* modelPath);
  26. /*
  27. * @brief 设置SDK参数
  28. * net_input_width 和 net_input_height
  29. * 表示神经网络的传入,一般情况下不同模型不太一样
  30. * 此处(HairParser)传入值约定为 net_input_width = 128, net_input_height = 224
  31. **/
  32. BEF_SDK_API bef_effect_result_t
  33. bef_effect_ai_skyseg_set_param(bef_ai_skyseg_handle handle,
  34. int width,
  35. int height);
  36. /*
  37. * * @brief 获取输出mask shape
  38. * output_width, output_height, channel 用于得到 bef_effect_ai_skyseg_detect 接口输出的
  39. * alpha 大小 如果在 bef_effect_ai_skyseg_set_param 的参数中,net_input_width,net_input_height
  40. * 已按约定传入,即 net_input_width = 128, net_input_height = 224
  41. * channel 始终返回 1
  42. */
  43. BEF_SDK_API bef_effect_result_t
  44. bef_effect_ai_skyseg_get_output_shape(bef_ai_skyseg_handle handle,
  45. int *output_width,
  46. int *output_height,
  47. int *channel);
  48. /*
  49. * @brief 进行抠图操作
  50. * @note 注意dst_alpha_data 空间需要外部分配
  51. * image 为传入图片的大小,图片大小任意
  52. * pixel_format, image_width, image_height, image_stride 为传入图片的信息
  53. **/
  54. BEF_SDK_API bef_effect_result_t
  55. bef_effect_ai_skyseg_detect(bef_ai_skyseg_handle handle,
  56. const unsigned char* image,
  57. bef_ai_pixel_format pixel_format,
  58. int image_width,
  59. int image_height,
  60. int image_stride,
  61. bef_ai_rotate_type orientation,
  62. unsigned char *dst_alpha_data,
  63. bool need_flip_alpha,
  64. bool need_sky_check,
  65. bool *has_sky);
  66. /*
  67. * @brief 释放句柄
  68. **/
  69. BEF_SDK_API bef_effect_result_t bef_effect_ai_skyseg_destroy(bef_ai_skyseg_handle handle);
  70. /**
  71. * @brief 天空分割授权
  72. * @param [in] handle Created skyseg handle
  73. * @param [in] license 授权文件字符串
  74. * @return If succeed return BEF_RESULT_SUC, other value please refer bef_effect_ai_public_define.h
  75. * 成功返回 BEF_RESULT_SUC, 授权码非法返回 BEF_RESULT_INVALID_LICENSE ,其它失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
  76. */
  77. BEF_SDK_API bef_effect_result_t bef_effect_ai_skyseg_check_license(bef_ai_skyseg_handle handle, const char* licensePath);
  78. BEF_SDK_API bef_effect_result_t
  79. bef_effect_ai_skyseg_check_online_license(bef_ai_skyseg_handle handle, const char* licensePath);
  80. #endif /* bef_effect_ai_skyseg_h */