ImageSegmenter

公共 final 类 ImageSegmenter

对图像执行图像分割。

请注意,除了获取输入图片并返回输出但涉及返回值的深层副本的标准分割 API ERROR(/segment)ERROR(/segmentForVideo) 之外,ImageSegmenter 还支持回调 API ERROR(/segmentWithResultListener)ERROR(/segmentForVideoWithResultListener),它们可让您通过零副本访问输出。

回调 API 适用于 ImageSegmenter 中的所有 RunningMode。在 ImageSegmenter.ImageSegmenterOptions 中正确设置 OutputHandler.ResultListener 以使用回调 API。

API 需要具有 TFLite 模型元数据的 TFLite 模型。

  • 输入图片 MPImage
    • 运行图像分割器的图片。
  • 输出 ImageSegmenterResult ImageSegmenterResult
    • 包含分割遮罩的 ImageSegmenterResult。

嵌套类

类别 ImageSegmenter.ImageSegmenterOptions 用于设置 ImageSegmenter 的选项。 
类别 ImageSegmenter.SegmentationOptions 用于配置 ImageSegmenter 的运行时行为的选项。 

公共方法

静态 ImageSegmenter
列表<String>
getLabels()
获取 ImageSegmenter 可识别的类别标签列表。
ImageSegmenterResult
segmentMPImage 图像、ImageSegmenter.SegmentationOptions segmentationOptions)
对提供的单张图片执行图像分割。
ImageSegmenterResult
segmentMPImage 图片、ImageProcessingOptions imageProcessingOptions)
对提供的单张图片执行图像分割。
ImageSegmenterResult
segmentMPImage 图片)
使用默认的图像处理选项(即
void
segmentAsyncMPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
发送实时图像数据以执行图像分割,结果将通过 ImageSegmenter.ImageSegmenterOptions 中提供的 OutputHandler.ResultListener 获得。
void
segmentAsyncMPImage 图片、ImageSegmenter.SegmentationOptions segmentationOptions、long timestampMs)
发送实时图像数据以执行图像分割,结果将通过 ImageSegmenter.ImageSegmenterOptions 中提供的 OutputHandler.ResultListener 获得。
void
segmentAsyncMPImage 图片,长 timestampMs)
发送实时图像数据,以使用默认图像处理选项(即
ImageSegmenterResult
segmentForVideoMPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
对提供的视频帧执行图像分割。
ImageSegmenterResult
segmentForVideoMPImage 图片,长 timestampMs)
使用默认图片处理选项(即,
ImageSegmenterResult
segmentForVideoMPImage 图片、ImageSegmenter.SegmentationOptionssegmentOptions, long timestampMs)
对提供的视频帧执行图像分割。
void
segmentForVideoWithResultListenerMPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
对提供的视频帧执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。
void
segmentForVideoWithResultListenerMPImage 图片、ImageSegmenter.SegmentationOptions审查选项、长 timestampMs)
对提供的视频帧执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。
void
segmentForVideoWithResultListenerMPImage 图片,长 timestampMs)
使用默认图片处理选项(即,
void
segmentWithResultListener(MPImage 图片、ImageProcessingOptions imageProcessingOptions)
对提供的单张图片执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。
void
segmentWithResultListenerMPImage 图片)
使用默认的图像处理选项(即
void
segmentWithResultListenerMPImage 图片、ImageSegmenter.SegmentationOptions segmentationOptions)
对提供的单张图片执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。

继承的方法

公共方法

public static ImageSegmenter createFromOptions (Context context, ImageSegmenter.ImageSegmenterOptions segmenterOptions)

参数
context 一个 Android ERROR(/Context)
segmenterOptions 一个 ImageSegmenter.ImageSegmenterOptions 实例。
抛出
如果 ImageSegmenter 创建过程中出错,则会发生该错误。

public List<String> getLabels ()

获取 ImageSegmenter 可识别的类别标签列表。对于 CATEGORY_MASK 类型,类别掩码中的索引对应于标签列表中的类别。对于 CONFIDENCE_MASK 类型,索引处的输出掩码列表对应于标签列表中的类别。

如果模型文件中未提供任何标签映射,则返回空的标签列表。

public ImageSegmenterResult segment MPImage image, ImageSegmenter.SegmentationOptions segmentationOptions)

对提供的单张图片执行图像分割。仅当使用 ERROR(/RunningMode.IMAGE) 创建 ImageSegmenter 时,才使用此方法。输入图片格式的 TODO 更新 Java 文档。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
segmentationOptions 用于配置 ImageSegmenter 的运行时行为的 ImageSegmenter.SegmentationOptions
抛出
出现内部错误。或者,如果 ImageSegmenter 是使用 OutputHandler.ResultListener 创建的。

public ImageSegmenterResult segment (MPImage image, ImageProcessingOptions imageProcessingOptions)

对提供的单张图片执行图像分割。输出掩码与输入图片的大小相同。仅当使用 ERROR(/RunningMode.IMAGE) 创建 ImageSegmenter 时,才使用此方法。关于输入图片格式的 TODO 更新 Java 文档。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。或者,如果 ImageSegmenter 是使用 OutputHandler.ResultListener 创建的。

public ImageSegmenterResult segment MPImage 图片)

使用默认图片处理选项对提供的单张图片执行图像分割,即不应用任何旋转。输出掩码与输入图片的大小相同。只有在使用 ERROR(/RunningMode.IMAGE) 创建 ImageSegmenter 的情况下,才应使用此方法。 关于输入图片格式的 TODO 更新 Java 文档。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
抛出
出现内部错误。或者,如果 ImageSegmenter 是使用 OutputHandler.ResultListener 创建的。

public void segmentAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

发送实时图像数据以执行图像分割,结果将通过 ImageSegmenter.ImageSegmenterOptions 中提供的 OutputHandler.ResultListener 获得。输出掩码与输入图片的大小相同。仅在使用 ERROR(/RunningMode.LIVE_STREAM) 创建 ImageSegmenter 时使用此方法。

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到图像分割器。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。

public void segmentAsync MPImage image, ImageSegmenter.SegmentationOptions segmentationOptions, long timestampMs)

发送实时图像数据以执行图像分割,结果将通过 ImageSegmenter.ImageSegmenterOptions 中提供的 OutputHandler.ResultListener 获得。只有在使用 ERROR(/RunningMode.LIVE_STREAM) 创建 ImageSegmenter 时,才应使用此方法。

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到图像分割器。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
segmentationOptions 用于配置 ImageSegmenter 的运行时行为的 ImageSegmenter.SegmentationOptions
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。

public void segmentAsync MPImage 图片, long timestampMs)

发送实时图像数据,以使用默认图像处理选项执行图像分割,即不应用任何旋转,结果将通过 ImageSegmenter.ImageSegmenterOptions 中提供的 OutputHandler.ResultListener 获得。输出掩码与输入图片的大小相同。仅当使用 ERROR(/RunningMode.LIVE_STREAM) 创建 ImageSegmenter 时,才使用此方法。

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到图像分割器。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。

public ImageSegmenterResult segmentForVideo MPImage image、ImageProcessingOptions imageProcessingOptions, long timestampMs)

对提供的视频帧执行图像分割。输出掩码与输入图片的大小相同。仅当使用 ERROR(/RunningMode.VIDEO) 创建 ImageSegmenter 时,才使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。或者,如果 ImageSegmenter 是使用 OutputHandler.ResultListener 创建的。

public ImageSegmenterResult segmentForVideo MPImage image, long timestampMs)

使用默认图片处理选项对提供的视频帧执行图像分割,即不应用任何旋转。输出掩码与输入图片的大小相同。只有在使用 ERROR(/RunningMode.VIDEO) 创建 ImageSegmenter 的情况下,才应使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。或者,如果 ImageSegmenter 是使用 OutputHandler.ResultListener 创建的。

public ImageSegmenterResult segmentForVideo MPImage image, ImageSegmenter.SegmentationOptions segmentationOptions, long timestampMs)

对提供的视频帧执行图像分割。仅当使用 ERROR(/RunningMode.VIDEO) 创建 ImageSegmenter 时,才使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
segmentationOptions 用于配置 ImageSegmenter 的运行时行为的 ImageSegmenter.SegmentationOptions
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。或者,如果 ImageSegmenter 是使用 OutputHandler.ResultListener 创建的。

public void segmentForVideoWithResultListener MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

对提供的视频帧执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。输出掩码与输入图片的大小相同。仅当使用 ERROR(/RunningMode.VIDEO) 创建 ImageSegmenter 时,才使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions
timestampMs 输入时间戳(以毫秒为单位)。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。或者,如果未在 ImageSegmenter.ImageSegmenterOptions 中设置 OutputHandler.ResultListener 的情况下创建 ImageSegmenter

public void segmentForVideoWithResultListener MPImage image, ImageSegmenter.SegmentationOptions segmentationOptions, long timestampMs)

对提供的视频帧执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。仅当使用 ERROR(/RunningMode.VIDEO) 创建 ImageSegmenter 时,才使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
segmentationOptions 用于配置 ImageSegmenter 的运行时行为的 ImageSegmenter.SegmentationOptions
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。或者,如果未在 ImageSegmenter.ImageSegmenterOptions 中设置 OutputHandler.ResultListener 的情况下创建 ImageSegmenter

public void segmentForVideoWithResultListener MPImage 图片, long timestampMs)

使用默认图片处理选项(即不应用任何旋转)对提供的视频帧执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。输出掩码与输入图片的大小相同。只有在使用 ERROR(/RunningMode.VIDEO) 创建 ImageSegmenter 的情况下,才应使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。或者,如果未在 ImageSegmenter.ImageSegmenterOptions 中设置 OutputHandler.ResultListener 的情况下创建 ImageSegmenter

public void segmentWithResultListener (MPImage image, ImageProcessingOptions imageProcessingOptions)

对提供的单张图片执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。输出掩码与输入图片的大小相同。仅当使用 ERROR(/RunningMode.IMAGE) 创建 ImageSegmenter 时,才使用此方法。

关于输入图片格式的 TODO 更新 Java 文档。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。或者,如果未在 ImageSegmenter.ImageSegmenterOptions 中设置 OutputHandler.ResultListener 的情况下创建 ImageSegmenter

public void segmentWithResultListener MPImage 图片)

使用默认图片处理选项(即不应用任何旋转)对提供的单张图片执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。输出掩码与输入图片的大小相同。只有在使用 ERROR(/RunningMode.IMAGE) 创建 ImageSegmenter 的情况下,才应使用此方法。

关于输入图片格式的 TODO 更新 Java 文档。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
抛出
出现内部错误。或者,如果未在 ImageSegmenter.ImageSegmenterOptions 中设置 OutputHandler.ResultListener 的情况下创建 ImageSegmenter

public void segmentWithResultListener MPImage image, ImageSegmenter.SegmentationOptions segmentationOptions)

对提供的单张图片执行图像分割,并通过 ImageSegmenter.ImageSegmenterOptions 中的 OutputHandler.ResultListener 提供零复制的结果。仅当使用 ERROR(/RunningMode.IMAGE) 创建 ImageSegmenter 时,才使用此方法。

关于输入图片格式的 TODO 更新 Java 文档。

ImageSegmenter 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
segmentationOptions 用于配置 ImageSegmenter 的运行时行为的 ImageSegmenter.SegmentationOptions
抛出
出现内部错误。或者,如果未在 ImageSegmenter.ImageSegmenterOptions 中设置 OutputHandler.ResultListener 的情况下创建 ImageSegmenter