对图片执行手势识别。
此 API 需要预训练的手势模型资源包,或使用 Model Maker 创建的自定义资源包。请参阅
- 输入图片
MPImage
- 运行手势识别的图片。
- 输出 GestureRecognizerResult
GestureRecognizerResult
- 一个 GestureRecognizerResult,包含手部特征点和识别出的手势。
嵌套类
类别 | GestureRecognizer.GestureRecognizerOptions | 用于设置 GestureRecognizer 的选项。 |
公共方法
静态 GestureRecognizer |
createFromBuffer(Context context, ByteBuffer modelBuffer)
基于模型缓冲区和默认的
GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。 |
静态 GestureRecognizer |
createFromFile(Context context, String modelPath)
使用模型文件和默认的
GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。 |
静态 GestureRecognizer |
createFromFile(Context context, File modelFile)
使用模型文件和默认的
GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。 |
静态 GestureRecognizer |
createFromOptions(Context context, GestureRecognizer.GestureRecognizerOptions识别 rOptions)
|
GestureRecognizerResult | |
GestureRecognizerResult | |
void | |
void |
recognizeAsync(MPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
发送实时图片数据以执行手势识别,结果将通过
GestureRecognizer.GestureRecognizerOptions 中提供的 OutputHandler.ResultListener 获得。 |
GestureRecognizerResult | |
GestureRecognizerResult |
recognizeForVideo(MPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
对提供的视频帧执行手势识别。
|
继承的方法
公共方法
public static GestureRecognizer createFromBuffer (Context context, ByteBuffer modelBuffer)
基于模型缓冲区和默认的 GestureRecognizer.GestureRecognizerOptions
创建 GestureRecognizer
实例。
参数
context | 一个 Android ERROR(/Context) 。 |
---|---|
modelBuffer | 检测模型的直接 ByteBuffer 或 ERROR(/MappedByteBuffer) 。 |
抛出
如果 GestureRecognizer 创建过程中出错,则会发生该错误。 |
public static GestureRecognizer createFromFile (Context context, String modelPath)
使用模型文件和默认的 GestureRecognizer.GestureRecognizerOptions
创建 GestureRecognizer
实例。
参数
context | 一个 Android ERROR(/Context) 。 |
---|---|
modelPath | 包含资源元数据的手势识别模型的路径。 |
抛出
如果 GestureRecognizer 创建过程中出错,则会发生该错误。 |
public static GestureRecognizer createFromFile (上下文上下文、File modelFile)
使用模型文件和默认的 GestureRecognizer.GestureRecognizerOptions
创建 GestureRecognizer
实例。
参数
context | 一个 Android ERROR(/Context) 。 |
---|---|
modelFile | 手势识别模型 File 实例。 |
抛出
IOException | 如果在打开 tflite 模型文件时发生 I/O 错误,则会发生该错误。 |
---|---|
如果 GestureRecognizer 创建过程中出错,则会发生该错误。 |
public static GestureRecognizer createFromOptions (Context context, GestureRecognizer.GestureRecognizerOptions recognizerOptions)
参数
context | 一个 Android ERROR(/Context) 。 |
---|---|
recognizerOptions | 一个 GestureRecognizer.GestureRecognizerOptions 实例。 |
抛出
如果 GestureRecognizer 创建过程中出错,则会发生该错误。 |
public GestureRecognizerResult recognize (MPImage 图片)
使用默认的图片处理选项(即不应用任何旋转)对提供的单张图片执行手势识别。仅当使用 ERROR(/RunningMode.IMAGE)
创建 GestureRecognizer
时,才使用此方法。输入图片格式的 TODO 更新 Java 文档。
GestureRecognizer
支持以下颜色空间类型:
参数
图片 | 用于处理的 MediaPipe MPImage 对象。 |
---|
抛出
出现内部错误。 |
public GestureRecognizerResult recognize (MPImage image, ImageProcessingOptions imageProcessingOptions)
对提供的单张图片执行手势识别。仅当使用 ERROR(/RunningMode.IMAGE)
创建 GestureRecognizer
时,才使用此方法。输入图片格式的 TODO 更新 Java 文档。
GestureRecognizer
支持以下颜色空间类型:
参数
图片 | 用于处理的 MediaPipe MPImage 对象。 |
---|---|
imageProcessingOptions | ImageProcessingOptions ,用于指定在运行推断之前如何处理输入图片。请注意,此任务不支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。 |
抛出
IllegalArgumentException | 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。 |
---|---|
出现内部错误。 |
public void recognizeAsync (MPImage image, long timestampMs)
发送实时图片数据,以使用默认图片处理选项执行手势识别,即不应用任何旋转,结果将通过 GestureRecognizer.GestureRecognizerOptions
中提供的 OutputHandler.ResultListener
获得。仅当使用 ERROR(/RunningMode.LIVE_STREAM)
创建 ERROR(/GestureRecognition)
时,才使用此方法。
必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到手势识别器。输入时间戳必须单调递增。
GestureRecognizer
支持以下颜色空间类型:
参数
图片 | 用于处理的 MediaPipe MPImage 对象。 |
---|---|
timestampMs | 输入时间戳(以毫秒为单位)。 |
抛出
出现内部错误。 |
public void recognizeAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
发送实时图片数据以执行手势识别,结果将通过 GestureRecognizer.GestureRecognizerOptions
中提供的 OutputHandler.ResultListener
获得。只有在使用 ERROR(/RunningMode.LIVE_STREAM)
创建 ERROR(/GestureRecognition)
的情况下,才应使用此方法。
必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到手势识别器。输入时间戳必须单调递增。
GestureRecognizer
支持以下颜色空间类型:
参数
图片 | 用于处理的 MediaPipe MPImage 对象。 |
---|---|
imageProcessingOptions | ImageProcessingOptions ,用于指定在运行推断之前如何处理输入图片。请注意,此任务不支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。 |
timestampMs | 输入时间戳(以毫秒为单位)。 |
抛出
IllegalArgumentException | 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。 |
---|---|
出现内部错误。 |
public GestureRecognizerResult recognizeForVideo (MPImage image, long timestampMs)
使用默认图片处理选项对提供的视频帧执行手势识别,即不应用任何旋转。仅当使用 ERROR(/RunningMode.VIDEO)
创建 GestureRecognizer
时,才使用此方法。
必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。
GestureRecognizer
支持以下颜色空间类型:
参数
图片 | 用于处理的 MediaPipe MPImage 对象。 |
---|---|
timestampMs | 输入时间戳(以毫秒为单位)。 |
抛出
出现内部错误。 |
public GestureRecognizerResult recognizeForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
对提供的视频帧执行手势识别。仅当使用 ERROR(/RunningMode.VIDEO)
创建 GestureRecognizer
时,才使用此方法。
必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。
GestureRecognizer
支持以下颜色空间类型:
参数
图片 | 用于处理的 MediaPipe MPImage 对象。 |
---|---|
imageProcessingOptions | ImageProcessingOptions ,用于指定在运行推断之前如何处理输入图片。请注意,此任务不支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。 |
timestampMs | 输入时间戳(以毫秒为单位)。 |
抛出
IllegalArgumentException | 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。 |
---|---|
出现内部错误。 |