{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "StereoDepthLutOutput",
  "description": "Output format for the rectifier LUTs plus baseline and virtual focal length for depth\ngeneration.",
  "type": "object",
  "properties": {
    "alignment": {
      "description": "The alignment of this system",
      "$ref": "#/$defs/Alignment"
    },
    "baseline": {
      "description": "The baseline between the two cameras",
      "type": "number",
      "format": "double"
    },
    "virtual_cx": {
      "description": "The virtual principal point offset in the X direction, in pixels. Expressed in OpenCV's center pixel convention, where `(0, 0)` is the center of the top-left pixel.",
      "type": "number",
      "format": "double"
    },
    "virtual_cy": {
      "description": "The virtual principal point offset in the Y direction, in pixels. Expressed in OpenCV's center pixel convention, where `(0, 0)` is the center of the top-left pixel.",
      "type": "number",
      "format": "double"
    },
    "virtual_focal_length_pixels": {
      "description": "The virtual focal length for depth/disparity generation, in pixels.",
      "type": "number",
      "format": "double"
    }
  },
  "additionalProperties": {
    "$ref": "#/$defs/ImageLut"
  },
  "required": [
    "alignment",
    "baseline",
    "virtual_focal_length_pixels",
    "virtual_cx",
    "virtual_cy"
  ],
  "$defs": {
    "Alignment": {
      "description": "The baseline alignment between these two cameras, in the relative frame of the camera system.",
      "oneOf": [
        {
          "description": "A horizontal baseline",
          "type": "string",
          "const": "HORIZONTAL"
        },
        {
          "description": "A vertical baseline",
          "type": "string",
          "const": "VERTICAL"
        }
      ]
    },
    "ImageLut": {
      "description": "A type to represent a look-up table for remapping image coordinates (row, column) to new\nvalues.\n\nA look-up table is a performance enhancement for being able to remap image coordinate values\nfrom an old position at some row and column to new positions based on the type of operation\nbeing performed (e.g. project a 3D point onto the image, rectify the image based on camera\nintrinsics).\n\nThis type is not generally constructable on its own. In most cases, you'll end up with an\n`ImageLut` by deserializing data using [`serde`]. If you wish to construct an `ImageLut`,\nyou'll want to instead look at the [`CorrectionImageLut`] and [`DistortionImageLut`] types,\nwhich are newtype wrappers over an `ImageLut` describing the direction that the specific\n`ImageLut` remaps to.",
      "type": "object",
      "properties": {
        "height": {
          "description": "The height of the image format that this look-up table was generated for.",
          "type": "integer",
          "format": "uint32",
          "minimum": 0
        },
        "remap_columns": {
          "description": "The backing storage of a row-major, multi-dimensional array of `width` number of columns\nand `height` number of rows of the remap values in the 'x' direction of the image (along\nthe columns).\n\nThis value remaps the column value of a pixel at `(r, c)` to a new column location at `(r,\nx)`. Stored column coordinates are in OpenCV's center pixel convention, where `(0, 0)` is the center of the top-left pixel.",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "remap_rows": {
          "description": "The backing storage of a row-major, multi-dimensional array of `width` number of columns\nand `height` number of rows of the remap values in the 'y' direction of the image (along\nthe rows).\n\nThis value remaps the row value of a pixel at `(r, c)` to a new row location at `(y, c)`. Stored row coordinates are in OpenCV's center pixel convention, where `(0, 0)` is the center of the top-left pixel.",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "width": {
          "description": "The width of the image format that this look-up table was generated for.",
          "type": "integer",
          "format": "uint32",
          "minimum": 0
        }
      },
      "required": [
        "width",
        "height",
        "remap_columns",
        "remap_rows"
      ]
    }
  }
}