# Segmentation

public class **Segmentation** extends [Object](https://developer.android.com/reference/java/lang/Object.html)  
Entry point for identifying pixels in a supplied image as being part of the foreground or
the background.

     Segmenter segmenter = Segmentation.getClient(segmenterOptions);

To perform segmentation of an image, you first need to create an instance of
`https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`
from a `https://developer.android.com/reference/android/graphics/Bitmap.html`,
`https://developer.android.com/reference/java/nio/ByteBuffer.html`, etc. See
`https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`
documentation for more details. For example, the code below creates an `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`
from a `https://developer.android.com/reference/android/graphics/Bitmap.html`.

     InputImage image = InputImage.fromBitmap(bitmap, rotationDegrees);

Then the code below can segment the supplied `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage` and asynchronously return a `https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/SegmentationMask`.

     Task<SegmentationMask> task = segmenter.process(image);
     task.addOnSuccessListener(...).addOnFailureListener(...);

### Public Method Summary

|---|---|
| static [Segmenter](https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter) | [getClient](https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmentation#getClient(com.google.mlkit.vision.segmentation.selfie.SelfieSegmenterOptions))([SelfieSegmenterOptions](https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/selfie/SelfieSegmenterOptions) segmenterOptions) Gets an instance of `https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter` that can segment the foreground and the background of an image. |

### Inherited Method Summary

From class java.lang.Object

|---|---|
| [Object](https://developer.android.com/reference/java/lang/Object.html) | clone() |
| boolean | equals([Object](https://developer.android.com/reference/java/lang/Object.html) arg0) |
| void | finalize() |
| final [Class](https://developer.android.com/reference/java/lang/Class.html)\<?\> | getClass() |
| int | hashCode() |
| final void | notify() |
| final void | notifyAll() |
| [String](https://developer.android.com/reference/java/lang/String.html) | toString() |
| final void | wait(long arg0, int arg1) |
| final void | wait(long arg0) |
| final void | wait() |

## Public Methods

#### public static [Segmenter](https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter)
**getClient** ([SelfieSegmenterOptions](https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/selfie/SelfieSegmenterOptions) segmenterOptions)

Gets an instance of `https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter`
that can segment the foreground and the background of an image.

To release the resources associated with a `https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter`,
you need to ensure that `https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter#close()`
is called on the resulting `https://developers.google.com/android/reference/com/google/mlkit/vision/segmentation/Segmenter`
instance once it will no longer be used.