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