手势识别
功能说明
输入相机的 openGL 纹理,实时输出手势检测数据。您可以利用这些数据做一进步的开发。
Android 接口说明
Android 集成指引
Android 接口调用
1. 打开手势检测功能开关(XmagicApi.java)。
public void setFeatureEnableDisable(String featureName, boolean enable);
featureName 填 XmagicConstant.FeatureName.HAND_DETECT,enable 填 true。
2. 设置数据回调(XmagicApi.java)
void setAIDataListener(XmagicApi.OnAIDataListener aiDataListener)public interface OnAIDataListener {void onFaceDataUpdated(List<TEFaceData> faceDataList);void onHandDataUpdated(List<TEHandData> handDataList);void onBodyDataUpdated(List<TEBodyData> bodyDataList);void onAIDataUpdated(String data);}
onAIDataUpdated 返回 JSON 结构的 string 数据。
iOS 接口说明
iOS 集成指引
iOS 接口调用
1. 打开手势检测功能开关(Xmagic.h)。
- (void)setFeatureEnableDisable:(NSString *_Nonnull)featureName enable:(BOOL)enable;
featureName 填 HAND_DETECT(可在 TEDefine.h 中引入),enable 填 true。
2. 设置数据回调(Xmagic.h)
- (void)registerSDKEventListener:(id<YTSDKEventListener> _Nullable)listener;- (void)onAIEvent:(id)event{NSDictionary *eventDict = (NSDictionary *)event;if (eventDict[@"ai_info"] != nil) {NSLog(@"ai_info %@",eventDict[@"ai_info"]);}}
eventDict[@"ai_info"] 即为返回的 JSON 结构的 string 数据。
回调 JSON 数据说明
在回调的 JSON 数据中,"hand_info" 里是手势相关的数据,格式如下所示。
"hand_info":{ "gesture": "PAPER", "hand_point_2d": [180.71888732910156, 569.2958984375, ... , 353.8714294433594, 836.246826171875]}
hand_info 中各字段说明如下:
字段 | 含义 |
gesture | 手势类型名称 |
hand_point_2d | 捕捉到手势的数据信息 |
目前支持以下手势:
序号 | 手势 | 类型名称 | 示例图 |
1 | 比心 | HEART | |
2 | 手势5(open) | PAPER | |
3 | 手势2 | SCISSOR | |
4 | 拳头 | FIST | |
5 | 手势1 | ONE | |
6 | 我爱你 | LOVE | |
7 | 点赞 | LIKE | |
8 | OK | OK | |
9 | 摇滚手势 | ROCK | |
10 | 手势6 | SIX | |
11 | 手势8 | EIGHT | |
12 | 托 | LIFT | |
13 | 手势3 | THREE | |
14 | 手势4 | FOUR | |
如果为不可识别的手势,则类型名称为 OTHER。