对图像执行图像分割。
请注意,除了获取输入图片并返回输出但涉及返回值的深层副本的标准分割 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 的运行时行为的选项。 |
公共方法
继承的方法
公共方法
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 。
|