<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L183-L348) |

Class that performs interactive segmentation on images.

```python
mp.tasks.vision.InteractiveSegmenterLegacy(
    lib: serial_dispatcher.SerialDispatcher,
    handle: ctypes.c_void_p,
    dispatcher: async_result_dispatcher.AsyncResultDispatcher
)
```

Users can represent user interaction through `RegionOfInterest`, which gives
a hint to InteractiveSegmenterLegacy to perform segmentation focusing on the
given
region of interest.

The API expects a TFLite model with mandatory TFLite Model Metadata.

<br />

<br />

<br />

| ## Input tensor ||
|---|---|
| (kTfLiteUInt8/kTfLiteFloat32) - image input of size `[batch x height x width x channels]`. - batch inference is not supported (`batch` is required to be 1). - RGB and greyscale inputs are supported (`channels` is required to be 1 or 3). - if type is kTfLiteFloat32, NormalizationOptions are required to be attached to the metadata for input normalization. ||

<br />

<br />

<br />

<br />

| ## Output tensors ||
|---|---|
| (kTfLiteUInt8/kTfLiteFloat32) - list of segmented masks. - if `output_type` is CATEGORY_MASK, uint8 Image, Image vector of size 1. - if `output_type` is CONFIDENCE_MASK, float32 Image list of size `channels`. - batch is always 1 ||

<br />

An example of such model can be found at:
https://tfhub.dev/tensorflow/lite-model/deeplabv3/1/metadata/2

## Methods

### `close`

[View source](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L329-L336)

```python
close()
```

Closes the InteractiveSegmenterLegacy.

### `create_from_model_path`

[View source](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L228-L254)

```python
@classmethod
create_from_model_path(
    model_path: str
) -> 'InteractiveSegmenterLegacy'
```

Creates an `InteractiveSegmenterLegacy` object from a TensorFlow Lite model and the default `InteractiveSegmenterLegacyOptions`.

Note that the created `InteractiveSegmenterLegacy` instance is in image
mode, for
performing image segmentation on single image inputs.

<br />

<br />

<br />

| Args ||
|---|---|
| `model_path` | Path to the model. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| `InteractiveSegmenterLegacy` object that's created from the model file and the default `InteractiveSegmenterLegacyOptions`. ||

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `ValueError` | If failed to create `InteractiveSegmenterLegacy` object from the provided file such as invalid file path. |
| `RuntimeError` | If other types of error occurred. |

<br />

### `create_from_options`

[View source](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L256-L281)

```python
@classmethod
create_from_options(
    options: `mp.tasks.vision.InteractiveSegmenterLegacyOptions`
) -> 'InteractiveSegmenterLegacy'
```

Creates the `InteractiveSegmenterLegacy` object from interactive segmenter options.

<br />

<br />

<br />

| Args ||
|---|---|
| `options` | Options for the interactive segmenter task. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| `InteractiveSegmenterLegacy` object that's created from `options`. ||

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `ValueError` | If failed to create `InteractiveSegmenterLegacy` object from `InteractiveSegmenterLegacyOptions` such as missing the model. |
| `RuntimeError` | If other types of error occurred. |

<br />

### `segment`

[View source](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L283-L327)

```python
segment(
    image: `mp.Image`,
    roi: `mp.tasks.vision.InteractiveSegmenterLegacyRegionOfInterest`,
    image_processing_options: Optional[`mp.tasks.vision.ImageProcessingOptions`] = None
) -> InteractiveSegmenterLegacyResult
```

Performs the actual segmentation task on the provided MediaPipe Image.

The image can be of any size with format RGB.

<br />

<br />

<br />

| Args ||
|---|---|
| `image` | MediaPipe Image. |
| `roi` | Optional user-specified region of interest for segmentation. |
| `image_processing_options` | Options for image processing. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| If the output_type is CATEGORY_MASK, the returned vector of images is per-category segmented image mask. If the output_type is CONFIDENCE_MASK, the returned vector of images contains only one confidence image mask. A segmentation result object that contains a list of segmentation masks as images. ||

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `ValueError` | If any of the input arguments is invalid. |
| `RuntimeError` | If image segmentation failed to run. |

<br />

### `__enter__`

[View source](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L338-L340)

```python
__enter__()
```

Returns `self` upon entering the runtime context.

### `__exit__`

[View source](https://github.com/google-ai-edge/mediapipe/blob/master/mediapipe/tasks/python/vision/interactive_segmenter_legacy.py#L342-L345)

```python
__exit__(
    exc_type, exc_value, traceback
)
```

Shuts down the MediaPipe task instance on exit of the context manager.