pandora.disparity.disparity

This module contains functions associated to the disparity map computation step.

Module Contents

Classes

AbstractDisparity

Abstract Disparity class

WinnerTakesAll

WinnerTakesAll class allows to perform the disparity computation step

Functions

extract_disparity_interval_from_cost_volume(...)

Return a DataArray with min and max disparity from cost_volume.

extract_interval_from_disparity_map(→ Tuple[int, int])

Return a DataArray with min and max disparity from disparity_map.

extract_disparity_range_from_disparity_map(→ numpy.ndarray)

Return a numpy array of evenly spaced values within disparity min and disparity max.

class pandora.disparity.disparity.AbstractDisparity[source]

Abstract Disparity class

__metaclass__[source]
disparity_methods_avail: Dict[source]
cfg[source]
margins[source]
classmethod register_subclass(short_name: str)[source]

Allows to register the subclass with its short name

Parameters:

short_name (string) – the subclass to be registered

abstract desc()[source]

Describes the disparity method

abstract to_disp(cv: xarray.Dataset, img_left: xarray.Dataset = None, img_right: xarray.Dataset = None) xarray.Dataset[source]

Disparity computation by applying the Winner Takes All strategy

Parameters:
  • cv (xarray.Dataset,) –

    the cost volume datset with the data variables:

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

    • confidence_measure 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

  • 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

Returns:

Dataset with the disparity map and the confidence measure with the data variables :

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

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

Return type:

xarray.Dataset

static coefficient_map(cv: xarray.DataArray) xarray.DataArray[source]

Return the coefficient map

Parameters:

cv (xarray.Dataset, with the data variables cost_volume 3D xarray.DataArray (row, col, disp)) – cost volume

Returns:

the coefficient map

Return type:

2D DataArray (row, col)

static approximate_right_disparity(cv: xarray.Dataset, img_right: xarray.Dataset, invalid_value: float = 0) xarray.Dataset[source]

Create the right disparity map, by a diagonal search for the minimum in the left cost volume

ERNST, Ines et HIRSCHMÜLLER, Heiko. Mutual information based semi-global stereo matching on the GPU. In : International Symposium on Visual Computing. Springer, Berlin, Heidelberg, 2008. p. 228-239.

Parameters:
  • cv (xarray.Dataset) –

    the cost volume dataset with the data variables:

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

    • confidence_measure 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

  • invalid_value (float) – disparity to assign to invalid pixels

Returns:

Dataset with the right disparity map, the confidence measure and the validity mask with the data variables :

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

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

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

Return type:

xarray.Dataset

pandora.disparity.disparity.extract_disparity_interval_from_cost_volume(cost_volume: xarray.Dataset) xarray.DataArray[source]

Return a DataArray with min and max disparity from cost_volume.

Parameters:

cost_volume (xarray.Dataset) –

cost volume dataset with the data variables:

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

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

Returns:

Disparity interval

Return type:

xarray.DataArray (min, max)

pandora.disparity.disparity.extract_interval_from_disparity_map(disparity_map: xarray.Dataset) Tuple[int, int][source]

Return a DataArray with min and max disparity from disparity_map.

Parameters:

disparity_map – dataset with the disparity map and the confidence measure

Returns:

disparity interval

Return type:

Tuple[int, int]

pandora.disparity.disparity.extract_disparity_range_from_disparity_map(disparity_map: xarray.Dataset) numpy.ndarray[source]

Return a numpy array of evenly spaced values within disparity min and disparity max.

Parameters:

disparity_map – dataset with the disparity map and the confidence measure

Returns:

disparity range.

Return type:

np.ndarray

class pandora.disparity.disparity.WinnerTakesAll(**cfg)[source]

Bases: AbstractDisparity

WinnerTakesAll class allows to perform the disparity computation step

_INVALID_DISPARITY[source]
check_conf(**cfg: str | int | float | bool) Dict[str, str | int | float | bool][source]

Add default values to the dictionary if there are missing elements and check if the dictionary is correct

Parameters:

cfg (dict) – disparity configuration

Return cfg:

disparity configuration updated

Return type:

dict

desc() None[source]

Describes the disparity method :return: None

to_disp(cv: xarray.Dataset, img_left: xarray.Dataset = None, img_right: xarray.Dataset = None) xarray.Dataset[source]

Disparity computation by applying the Winner Takes All strategy

Parameters:
  • cv (xarray.Dataset) –

    the cost volume datset with the data variables:

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

    • confidence_measure 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

  • 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

Returns:

Dataset with the disparity map, the confidence measure and the validity mask with the data variables :

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

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

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

Return type:

xarray.Dataset

static argmin_split(cost_volume: xarray.Dataset) numpy.ndarray[source]

Find the indices of the minimum values for a 3D DataArray, along axis 2. Memory consumption is reduced by splitting the 3D Array.

Parameters:

cost_volume (xarray.Dataset) – the cost volume dataset

Returns:

the disparities for which the cost volume values are the smallest

Return type:

np.ndarray

static argmax_split(cost_volume: xarray.Dataset) numpy.ndarray[source]

Find the indices of the maximum values for a 3D DataArray, along axis 2. Memory consumption is reduced by splitting the 3D Array.

Parameters:

cost_volume (xarray.Dataset) – the cost volume dataset

Returns:

the disparities for which the cost volume values are the highest

Return type:

np.ndarray