> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.stereolabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.stereolabs.com/_mcp/server.

# Camera Controls

Several camera settings can be tuned using [ZED Explorer](/docs/development/zed-tools/zed-explorer) or the API.

![ZED Explorer](/_fern-img/1445008876ec55ad9fdbd9a4d54db26e12e14be7c5a9f46d645b6b9d68afae8c.webp)

## Selecting a Resolution

On stereo cameras, the left and right video frames are synchronized and streamed as a single uncompressed video frame in a side-by-side format.

#### ZED, ZED 2/2i, ZED Mini

| Video Mode | Output Resolution (side by side) | Frame Rate (fps) | Field of View |
| ---------- | -------------------------------- | ---------------- | ------------- |
| `HD2K`     | 4416x1242                        | 15               | Wide          |
| `HD1080`   | 3840x1080                        | 30, 15           | Wide          |
| `HD720`    | 2560x720                         | 60, 30, 15       | Extra Wide    |
| `VGA`      | 1344x376                         | 100, 60, 30, 15  | Extra Wide    |

#### ZED X, ZED X Mini, ZED X Nano

| Video Mode | Output Resolution (side by side) | Frame Rate (fps) |
| ---------- | -------------------------------- | ---------------- |
| `HD1200`   | 3840x1200                        | 60, 30, 15       |
| `HD1080`   | 3840x1080                        | 60, 30, 15       |
| `SVGA`     | 1920x600                         | 120, 60, 30, 15  |

#### ZED X One GS

| Video Mode | Output Resolution | Frame Rate (fps) |
| ---------- | ----------------- | ---------------- |
| `HD1200`   | 1920x1200         | 60, 30, 15       |
| `HD1080`   | 1920x1080         | 60, 30, 15       |
| `SVGA`     | 960x600           | 120, 60, 30, 15  |

#### ZED X One 4K

| Video Mode | Output Resolution | Frame Rate (fps) |
| ---------- | ----------------- | ---------------- |
| `4K`       | 3840x2160         | 15               |
| `QHDPLUS`  | 3200x1800         | 15               |
| `HD1200`   | 1920x1200         | 60, 30, 15       |
| `HD1080`   | 1920x1080         | 60, 30, 15       |

You can change video resolution and frame rate in [ZED Explorer](/docs/development/zed-tools/zed-explorer) or [use the API](#using-the-api). To choose the frame rate that minimizes latency, see [Frame Rate and Latency](/docs/development/zed-sdk/modules/camera/frame-rate-and-latency).

## Selecting an Output View

The ZED outputs images in different formats. Using `retrieveImage()` with a value of the [`sl::VIEW`](https://www.stereolabs.com/docs/api/group__Video__group.html#ga77fc7bfc159040a1e2ffb074a8ad248c) enum, you can select between rectified, unrectified, grayscale, and color-rendered depth views:

| VIEW                     | Description                                                                              |
| ------------------------ | ---------------------------------------------------------------------------------------- |
| `LEFT`                   | Left rectified color image (BGRA, 8 bits)                                                |
| `RIGHT`                  | Right rectified color image (BGRA, 8 bits)                                               |
| `LEFT_GRAY`              | Left rectified grayscale image                                                           |
| `RIGHT_GRAY`             | Right rectified grayscale image                                                          |
| `LEFT_UNRECTIFIED`       | Left unrectified color image (BGRA, 8 bits)                                              |
| `RIGHT_UNRECTIFIED`      | Right unrectified color image (BGRA, 8 bits)                                             |
| `LEFT_UNRECTIFIED_GRAY`  | Left unrectified grayscale image                                                         |
| `RIGHT_UNRECTIFIED_GRAY` | Right unrectified grayscale image                                                        |
| `SIDE_BY_SIDE`           | Left and right rectified color images concatenated side by side (image width is doubled) |
| `DEPTH`                  | Color-coded rendering of the depth map, for display purposes                             |
| `CONFIDENCE`             | Color-coded rendering of the depth confidence map                                        |
| `NORMALS`                | Color-coded rendering of the normals map                                                 |
| `DEPTH_RIGHT`            | Color-coded rendering of the depth map aligned on the right sensor                       |
| `NORMALS_RIGHT`          | Color-coded rendering of the normals map aligned on the right sensor                     |

> **Note**
>
> The `DEPTH`, `CONFIDENCE`, `NORMALS`, `DEPTH_RIGHT` and `NORMALS_RIGHT` views are 8-bit color renderings intended for display only and require depth computation to be enabled. To access the underlying measurement values, use `retrieveMeasure()` with the [`sl::MEASURE`](https://www.stereolabs.com/docs/api/group__Depth__group.html) enum instead. Monocular cameras (ZED X One) do not provide depth-related views.

For more information on how to select these views using the API, see [Image Capture](#image-capture).

## Adjusting Camera Settings

The ZED camera features an ISP (Image Signal Processor) module that performs various image processing algorithms on raw images captured by the CMOS image sensors. Several parameters of the ISP can be adjusted directly from the [ZED Explorer](/docs/development/zed-tools/zed-explorer) application or through the ZED SDK with the [`sl::VIDEO_SETTINGS`](https://www.stereolabs.com/docs/api/group__Video__group.html#ga7bab4c6ca4fd971055eca1fdd9f4223d):

![ZED Explorer camera parameters](/_fern-img/f1b806612db13297a21e4bc4b03eac432c3bd795cd377ecd8ff150e5455536b4.webp)

#### ZED, ZED 2/2i, ZED Mini

| VIDEO\_SETTINGS           | Description                                                                                        | Values                              |
| ------------------------- | -------------------------------------------------------------------------------------------------- | ----------------------------------- |
| BRIGHTNESS                | Controls image brightness.                                                                         | \[0 - 8]                            |
| CONTRAST                  | Controls image contrast.                                                                           | \[0 - 8]                            |
| HUE                       | Controls image color.                                                                              | \[0 - 11]                           |
| SATURATION                | Controls image color intensity.                                                                    | \[0 - 8]                            |
| SHARPNESS                 | Controls image sharpness.                                                                          | \[0 - 8]                            |
| GAMMA                     | Controls gamma correction.                                                                         | \[1 - 9]                            |
| GAIN                      | Controls digital amplification of the signal from the camera sensors.                              | \[0 - 100]                          |
| EXPOSURE                  | Controls shutter speed. Setting a long exposure time leads to an increase in motion blur.          | \[0 - 100] (% of camera frame rate) |
| AEC\_AGC                  | Controls if gain and exposure are in automatic mode or not.                                        | \[0 - 1]                            |
| AEC\_AGC\_ROI             | Controls the region of interest for automatic exposure/gain computation.                           | sl::Rect                            |
| WHITEBALANCE\_TEMPERATURE | Controls camera white balance.                                                                     | \[2800 - 6500]                      |
| WHITEBALANCE\_AUTO        | Controls camera white balance automatic mode.                                                      | \[0 - 1]                            |
| LED\_STATUS               | Controls the status of the camera front LED. Set to 0 to disable the light, 1 to enable the light. | \[0 - 1]                            |

#### ZED X, ZED X Mini, ZED X Nano, ZED X One

| VIDEO\_SETTINGS             | Description                                                                                        | Values                              |
| --------------------------- | -------------------------------------------------------------------------------------------------- | ----------------------------------- |
| SATURATION                  | Controls image color intensity.                                                                    | \[0 - 8]                            |
| SHARPNESS                   | Controls image sharpness.                                                                          | \[0 - 8]                            |
| GAMMA                       | Controls gamma correction.                                                                         | \[1 - 9]                            |
| GAIN                        | Controls digital amplification of the signal from the camera sensors.                              | \[0 - 100]                          |
| AEC\_AGC                    | Controls if gain and exposure are in automatic mode or not.                                        | \[0 - 1]                            |
| AEC\_AGC\_ROI               | Controls the region of interest for automatic exposure/gain computation.                           | sl::Rect                            |
| WHITEBALANCE\_TEMPERATURE   | Controls camera white balance.                                                                     | \[2800 - 6500]                      |
| WHITEBALANCE\_AUTO          | Controls camera white balance automatic mode.                                                      | \[0 - 1]                            |
| LED\_STATUS                 | Controls the status of the camera front LED. Set to 0 to disable the light, 1 to enable the light. | \[0 - 1]                            |
| EXPOSURE\_TIME              | Controls the exposure time in μs.                                                                  | Value in μs                         |
| ANALOG\_GAIN                | Controls the real analog gain (sensor) in mdB.                                                     | \[1000-16000]\*                     |
| DIGITAL\_GAIN               | Controls the real digital gain (ISP) as a factor.                                                  | \[1-256]\*                          |
| AUTO\_EXPOSURE\_TIME\_RANGE | Controls the range of exposure auto control.                                                       | \[28000 - fps\_time or 19000] µs\*  |
| AUTO\_ANALOG\_GAIN\_RANGE   | Controls the range of sensor gain in automatic control.                                            | \[1000-16000] mdB\*                 |
| AUTO\_DIGITAL\_GAIN\_RANGE  | Controls the range of digital ISP gain in automatic control.                                       | \[1-256]\*                          |
| EXPOSURE\_COMPENSATION      | Controls the Exposure-target compensation made after auto exposure.                                | \[0-100] (50 means no compensation) |
| DENOISING                   | Controls the level of denoising applied to the images.                                             | \[0-100] (50 means no denoising)    |

> \*`ANALOG_GAIN`, `DIGITAL_GAIN`, `AUTO_EXPOSURE_TIME_RANGE`, `AUTO_ANALOG_GAIN_RANGE` and `AUTO_DIGITAL_GAIN_RANGE` are defined by the Jetson™ DTS. Default values are indicated in this table.

For more information on how to adjust camera settings using the API, see [Camera Controls](#adjusting-camera-controls).

> **Note**
>
> Camera controls adjust parameters of left and right image sensors in sync. It is not possible to adjust sensor parameters individually.

> **Warning**
>
> The ISP processes the images before they are sent to the host, so camera control settings are baked into the pixels that a [recording](/docs/development/zed-sdk/modules/camera/recording) writes to an SVO file. They are the only settings that cannot be changed when the file is played back: `setCameraSettings()` has no effect in Playback mode. Everything else, including depth, is [computed live at playback](/docs/development/zed-sdk/modules/camera/recording#everything-is-computed-live-at-playback) and can be freely reconfigured.

### Manual/Auto Mode

When camera White Balance, Exposure and Gain are in `AUTO` mode, they are automatically adjusted depending on the luminance in the scene.

> **Tip**
>
> In `AUTO` mode, Exposure level will be increased first, then Gain in order to reduce noise. When Exposure is at its maximum level, motion blur is increased. If you need to reduce blur, switch to `MANUAL` mode and increase Gain before Exposure.

It is also recommended to increase the Gamma setting in low-light environments, as it can provide a considerable light boost while reducing saturated areas.

## Using the API

The ZED API provides low-level access to camera control and configuration. To use the ZED in your application, you will need to create and open a `Camera` object. The API can be used with two different video inputs: the ZED live video (Live mode) or video files recorded in SVO format with the ZED API (Playback mode).

### Camera Configuration

To configure the camera, create a Camera object and specify your `InitParameters`. Initial parameters let you adjust camera resolution, FPS, depth sensing parameters and more. These parameters can only be set before opening the camera and cannot be changed while the camera is in use.

**`C++`**

```cpp C++
// Create a ZED camera object
Camera zed;

// Set configuration parameters
InitParameters init_params;
init_params.camera_resolution = RESOLUTION::HD1080;
init_params.camera_fps = 30;

// Open the camera
ERROR_CODE err = zed.open(init_params);
if (err != ERROR_CODE::SUCCESS)
    exit(-1);
```

**`Python`**

```python Python
# Create a ZED camera object
zed = sl.Camera()

# Set configuration parameters
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.HD1080
init_params.camera_fps = 30

# Open the camera
err = zed.open(init_params)
if err != sl.ERROR_CODE.SUCCESS:
    exit(-1)
```

**`C#`**

```csharp C#
// Create a ZED camera object
sl.Camera zed = new sl.Camera(0);

// Set configuration parameters
sl.InitParameters init_parameters = new sl.InitParameters();
init_parameters.resolution = sl.RESOLUTION.HD1080;
init_parameters.cameraFPS = 30;

// Open the camera
sl.ERROR_CODE err = zed.Open(ref init_parameters);
if (err != sl.ERROR_CODE.SUCCESS)
    Environment.Exit(-1);
```

`InitParameters` contains a configuration by default. To see the list of parameters, read the [API](https://www.stereolabs.com/docs/api/structsl_1_1InitParameters.html) documentation.

### Image Capture

To capture images from the ZED, specify your `RuntimeParameters` and call `grab()` to grab a new frame and `retrieveImage()` to retrieve the grabbed frame. `retrieveImage()` lets you select between different views such as left, right, unrectified and grayscale images.

**`C++`**

```cpp C++
sl::Mat image;
if (zed.grab() == ERROR_CODE::SUCCESS) {
  // A new image is available if grab() returns SUCCESS
  zed.retrieveImage(image, VIEW::LEFT); // Retrieve the left image
}
```

**`Python`**

```python Python
image = sl.Mat()
if zed.grab() == sl.ERROR_CODE.SUCCESS:
  # A new image is available if grab() returns SUCCESS
  zed.retrieve_image(image, sl.VIEW.LEFT) # Retrieve the left image
```

**`C#`**

```csharp C#
sl.Mat image = new sl.Mat();
sl.RuntimeParameters runtimeParameters = new sl.RuntimeParameters();
if (zed.Grab(ref runtimeParameters) == sl.ERROR_CODE.SUCCESS) {
  // A new image is available if Grab() returns SUCCESS
  zed.RetrieveImage(image, sl.VIEW.LEFT); // Retrieve the left image
}
```

### Adjusting Camera Controls

Camera settings such as exposure, white balance and more can be manually set at runtime using `setCameraSettings()`. To change camera resolution and frame rate, use `InitParameters`.

**`C++`**

```cpp C++
// Set exposure to 50% of camera framerate
zed.setCameraSettings(VIDEO_SETTINGS::EXPOSURE, 50);
// Set white balance to 4600K
zed.setCameraSettings(VIDEO_SETTINGS::WHITEBALANCE_TEMPERATURE, 4600);
// Reset to auto exposure
zed.setCameraSettings(VIDEO_SETTINGS::EXPOSURE, VIDEO_SETTINGS_VALUE_AUTO);
```

**`Python`**

```python Python
# Set exposure to 50% of camera framerate
zed.set_camera_settings(sl.VIDEO_SETTINGS.EXPOSURE, 50)
# Set white balance to 4600K
zed.set_camera_settings(sl.VIDEO_SETTINGS.WHITEBALANCE_TEMPERATURE, 4600)
# Reset to auto exposure
zed.set_camera_settings(sl.VIDEO_SETTINGS.EXPOSURE, -1)
```

**`C#`**

```csharp C#
// Set exposure in manual mode at 50% of camera framerate
zed.SetCameraSettings(sl.VIDEO_SETTINGS.EXPOSURE, 50);
// Set white balance to 4600K
zed.SetCameraSettings(sl.VIDEO_SETTINGS.WHITEBALANCE_TEMPERATURE, 4600);
//Reset to auto exposure
zed.SetCameraSettings(sl.VIDEO_SETTINGS.EXPOSURE, -1);
```

Camera settings can be retrieved using `getCameraSettings()`. To get the list of available settings, see the [API](https://www.stereolabs.com/docs/api/group__Video__group.html#ga7bab4c6ca4fd971055eca1fdd9f4223d) documentation.

## Code Example

Check out the [Camera Control](https://github.com/stereolabs/zed-sdk/tree/master/camera%20control) sample on GitHub.