> ## 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](/electron/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(RunAnywhere.image.file(path), {
  includeDiagnosticImage: true,
})
```

## Building the input

```ts theme={null}
RunAnywhere.image.file(path)
RunAnywhere.image.bytes(data)
RunAnywhere.image.rawRgb(data, width, height)
```

Passing a path rather than bytes avoids reading a large image into JavaScript memory only to
hand it back to native code.

## 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](/electron/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 runs on the ONNX backend, which does not load on `win32-arm64`. Check
`capabilities()` before offering it.
