> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runanywhere.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Segmentation

> Find and label regions in an image

Segmentation outlines objects in an image and labels them. Where a
[vision model](/web/vlm) describes a picture in words, segmentation gives you the regions
themselves: a mask per object, with a class and a confidence.

```ts theme={null}
const result = await RunAnywhere.segmentation.segment(image, {
  includeDiagnosticImage: true,
})
```

## Building the input

```ts theme={null}
await ImageInput.element(imgOrCanvasOrBitmap) // async, the browser-native path
ImageInput.bytes(data)
ImageInput.base64(value)
ImageInput.rawRgba(data, width, height)
```

## Options

| Field                    | Default | Meaning                                         |
| ------------------------ | ------- | ----------------------------------------------- |
| `includeDiagnosticImage` | `false` | Return a rendered overlay alongside the regions |

Turn the diagnostic image on while you are building the feature: it shows you what the model
actually found, which is much faster than reasoning about mask arrays. Turn it off in
production, since rendering it costs time and memory.

## What comes back

A `SegmentationResult` holds the regions found. Each carries its class label, a confidence,
and the mask itself, so you can draw an outline, crop to the object, or count instances.

## Segmentation or a vision model

| You want                            | Use             |
| ----------------------------------- | --------------- |
| A sentence about the picture        | [VLM](/web/vlm) |
| "Is there a dog in this"            | VLM             |
| The exact pixels of the dog         | Segmentation    |
| Object counts, or a crop            | Segmentation    |
| Anything you will draw on the image | Segmentation    |

## Availability

Segmentation needs a registered segmentation model and a backend that serves it. The namespace
existing does not mean the catalog has an entry, so check capabilities before putting it in
front of a user.
