当前位置: 首页 > 后端技术 > Java

静态模型一键动态化,教你如何集成动作捕捉能力

时间:2023-04-01 13:58:49 Java

静态模型一键动态化,手把手教你集成动作捕捉能力在开始API开发之前,需要在3.3.1配置AppGalleryConnect。同时请确保您的项目中已经配置了HMSCoreSDK的Maven仓库地址,并且已经完成3.3.2集成HMSCoreSDK的该服务。2.1创建动作捕捉引擎。//自定义参数配置。Modeling3dMotionCaptureEngineSettingsetting=newModeling3dMotionCaptureEngineSetting.Factory()//设置检测模式。//Modeling3dMotionCaptureEngineSetting.TYPE_3DSKELETON_QUATERNION:输出人体姿态对应的骨骼点四元数。//Modeling3dMotionCaptureEngineSetting.TYPE_3DSKELETON:输出人体姿态对应的骨骼点坐标。.setAnalyzeType(Modeling3dMotionCaptureEngineSetting.TYPE_3DSKELETON_QUATERNION|Modeling3dMotionCaptureEngineSetting.TYPE_3DSKELETON).create();Modeling3dMotionCaptureEngineengine=Modeling3dMotionCaptureEngineFactory.getInstance().getMotionCaptureEngine(setting);Modeling3dFrame封装了源自相关的视频帧或静态图片数据,以及相关的数据处理。可自行处理视频流,将视频帧转换为Modeling3dFrame对象,用于检测视频帧,支持NV21格式。通过android.graphics.Bitmap创建一个Modeling3dFrame对象,用于动作捕捉引擎检测图片。支持的图片格式包括:JPG/JPEG/PNG。//通过位图创建Modeling3dFrame。Modeling3dFrameframe=Modeling3dFrame.fromBitmap(位图);//从视频帧创建Modeling3dFrame。Modeling3dFrame.Propertyproperty=newModeling3dFrame.Property.Creator().setFormatType(ImageFormat.NV21)//设置视频帧宽度。.setWidth(width)//设置视频帧高度。.setHeight(height)//设置视频帧旋转角度。.setQuadrant(quadant)//设置视频帧数。.setItemIdentity(framIndex).create();Modeling3dFrameframe=Modeling3dFrame.fromByteBuffer(byteBuffer,property);2.2调用同步或异步方法进行动捕检测。asyncAnalyseFrame异步方法示例代码:Task>task=engine.asyncAnalyseFrame(frame);task.addOnSuccessListener(newOnSuccessListener>(){@OverridepublicvoidonSuccess(List){//检测成功。}}).addOnFailureListener(newOnFailureListener(){@OverridepublicvoidonFailure(Exceptione){//检测失败。}});analyseFrame同步方式示例代码:SparseArraysparseArray=engine.analyseFrame(frame);for(inti=0;i