pandora.criteria

This module contains functions associated to the validity mask created in the cost volume step.

Classes

FlagArray

NDArray subclass that expects to be filled with Flags and with dedicated repr.

Functions

binary_dilation_msk(→ numpy.ndarray)

Apply scipy binary_dilation on our image dataset.

allocate_validity_mask(→ xarray.DataArray)

Allocate the validity_mask DataArray of the cost volume, initialized to PANDORA_VALID.

validity_mask(→ xarray.Dataset)

Create the validity mask of the cost volume

mask_partially_missing_variable_ranges(cv, img_left, ...)

Mask the pixels with a partially missing variable range in the right image.

allocate_left_mask(→ None)

Allocate the left image mask

allocate_right_mask(→ None)

Allocate the right image mask

mask_invalid_variable_disparity_range(→ None)

Mask the pixels that have a missing disparity range, searching in the cost volume

mask_border(→ xarray.DataArray)

Mask border pixel which haven't been calculated because of the window's size

Module Contents

class pandora.criteria.FlagArray(shape, dtype=float, buffer=None, offset=0, strides=None, order=None)[source]

Bases: numpy.ndarray

NDArray subclass that expects to be filled with Flags and with dedicated repr.

__array_finalize__(obj)[source]
__repr__() str[source]
pandora.criteria.binary_dilation_msk(img: xarray.Dataset, window_size: int) numpy.ndarray[source]

Apply scipy binary_dilation on our image dataset. Get the no_data pixels.

Parameters:
  • img (xarray.Dataset) –

    Dataset image containing :

    • im: 2D (row, col) or 3D (band_im, row, col) xarray.DataArray float32

    • disparity (optional): 3D (disp, row, col) xarray.DataArray float32

    • msk (optional): 2D (row, col) xarray.DataArray int16

    • classif (optional): 3D (band_classif, row, col) xarray.DataArray int16

    • segm (optional): 2D (row, col) xarray.DataArray int16

    • edges (optional): 2D (row, col) xarray.DataArray int16

  • window_size (int) – window size of the cost volume

Returns:

np.ndarray with location of pixels that are marked as no_data according to the image mask

Return type:

np.ndarray

pandora.criteria.allocate_validity_mask(cv: xarray.Dataset, value: int | pandora.constants.Criteria = Criteria.PANDORA_VALID, data_type: numpy.typing.DTypeLike = np.uint16) xarray.DataArray[source]

Allocate the validity_mask DataArray of the cost volume, initialized to PANDORA_VALID.

Parameters:
  • cv (xarray.Dataset) – cost volume dataset (provides row, col sizes)

  • value (int or Criteria) – initial value (default Criteria.PANDORA_VALID = 0)

  • data_type (DTypeLike) – dtype of the validity mask. Default np.uint16.

Returns:

validity_mask 2D DataArray (row, col)

Return type:

xarray.DataArray

pandora.criteria.validity_mask(img_left: xarray.Dataset, img_right: xarray.Dataset, cv: xarray.Dataset) xarray.Dataset[source]

Create the validity mask of the cost volume

Parameters:
  • img_left (xarray.Dataset) –

    left Dataset image containing :

    • im: 2D (row, col) or 3D (band_im, row, col) xarray.DataArray float32

    • disparity (optional): 3D (disp, row, col) xarray.DataArray float32

    • msk (optional): 2D (row, col) xarray.DataArray int16

    • classif (optional): 3D (band_classif, row, col) xarray.DataArray int16

    • segm (optional): 2D (row, col) xarray.DataArray int16

    • edges (optional): 2D (row, col) xarray.DataArray int16

  • img_right (xarray.Dataset) –

    right Dataset image containing :

    • im: 2D (row, col) or 3D (band_im, row, col) xarray.DataArray float32

    • disparity (optional): 3D (disp, row, col) xarray.DataArray float32

    • msk (optional): 2D (row, col) xarray.DataArray int16

    • classif (optional): 3D (band_classif, row, col) xarray.DataArray int16

    • segm (optional): 2D (row, col) xarray.DataArray int16

    • edges (optional): 2D (row, col) xarray.DataArray int16

  • cv (xarray.Dataset) –

    cost volume dataset with the data variables:

    • cost_volume 3D xarray.DataArray (row, col, disp)

    • confidence_measure (optional) 3D xarray.DataArray (row, col, indicator)

Returns:

Dataset with the cost volume and the validity_mask with the data variables :

  • cost_volume 3D xarray.DataArray (row, col, disp)

  • confidence_measure 3D xarray.DataArray (row, col, indicator)

  • validity_mask 2D xarray.DataArray (row, col)

Return type:

xarray.Dataset

pandora.criteria.mask_partially_missing_variable_ranges(cv, img_left, img_right)[source]

Mask the pixels with a partially missing variable range in the right image. Applies the mask directly to the CV’s validity mask.

Parameters:
  • cv (xarray.Dataset) – Cost volume dataset

  • img_left (xarray.Dataset) – Left image dataset

  • img_right (xarray.Dataset) – Right image dataset

pandora.criteria.allocate_left_mask(cv: xarray.Dataset, img_left: xarray.Dataset) None[source]

Allocate the left image mask

Parameters:
  • cv (xarray.Dataset) –

    cost volume dataset with the data variables:

    • cost_volume 3D xarray.DataArray (row, col, disp)

    • confidence_measure (optional) 3D xarray.DataArray (row, col, indicator)

  • img_left (xarray.Dataset) –

    left Dataset image containing :

    • im: 2D (row, col) or 3D (band_im, row, col) xarray.DataArray float32

    • disparity (optional): 3D (disp, row, col) xarray.DataArray float32

    • msk (optional): 2D (row, col) xarray.DataArray int16

    • classif (optional): 3D (band_classif, row, col) xarray.DataArray int16

    • segm (optional): 2D (row, col) xarray.DataArray int16

    • edges (optional): 2D (row, col) xarray.DataArray int16

Returns:

None

pandora.criteria.allocate_right_mask(cv: xarray.Dataset, img_right: xarray.Dataset, bit_1: numpy.ndarray | Tuple) None[source]

Allocate the right image mask

Parameters:
  • cv (xarray.Dataset) –

    cost volume dataset with the data variables:

    • cost_volume 3D xarray.DataArray (row, col, disp)

    • confidence_measure (optional) 3D xarray.DataArray (row, col, indicator)

  • img_right (xarray.Dataset) –

    right Dataset image containing :

    • im: 2D (row, col) or 3D (band_im, row, col) xarray.DataArray float32

    • disparity (optional): 3D (disp, row, col) xarray.DataArray float32

    • msk (optional): 2D (row, col) xarray.DataArray int16

    • classif (optional): 3D (band_classif, row, col) xarray.DataArray int16

    • segm (optional): 2D (row, col) xarray.DataArray int16

    • edges (optional): 2D (row, col) xarray.DataArray int16

  • bit_1 – where the disparity interval is missing in the right image ( disparity range outside the image )

Type:

ndarray or Tuple

Returns:

None

pandora.criteria.mask_invalid_variable_disparity_range(cv: xarray.Dataset) None[source]

Mask the pixels that have a missing disparity range, searching in the cost volume the pixels where cost_volume(row,col, for all d) = np.nan

Parameters:

cv (xarray.Dataset) –

cost volume dataset with the data variables:

  • cost_volume 3D xarray.DataArray (row, col, disp)

  • confidence_measure (optional) 3D xarray.DataArray (row, col, indicator)

Returns:

None

pandora.criteria.mask_border(dataset: xarray.Dataset) xarray.DataArray[source]

Mask border pixel which haven’t been calculated because of the window’s size

Parameters:

dataset – dataset that can be :

  • the cost volume, the confidence measure and the validity_mask with the data variables :
    • cost_volume 3D xarray.DataArray (row, col, disp)

    • confidence_measure (optional) 3D xarray.DataArray (row, col, indicator)

    • validity_mask 2D xarray.DataArray (row, col)

  • the disparity_map, the confidence measure and the validity mask with the data variables :
    • disparity_map 2D xarray.DataArray (row, col)

    • confidence_measure (optional) 3D xarray.DataArray (row, col, indicator)

    • validity_mask 2D xarray.DataArray (row, col)

Returns:

DataArray with the updated validity_mask

Return type:

xarray.Dataset