pandora.matching_cost.zncc ========================== .. py:module:: pandora.matching_cost.zncc .. autoapi-nested-parse:: This module contains functions associated to ZNCC method used in the cost volume measure step. Classes ------- .. autoapisummary:: pandora.matching_cost.zncc.Zncc Functions --------- .. autoapisummary:: pandora.matching_cost.zncc.apply_divide_standard Module Contents --------------- .. py:class:: Zncc(**cfg: Union[str, int]) Bases: :py:obj:`pandora.matching_cost.matching_cost.AbstractMatchingCost` Zero mean normalized cross correlation Zncc class allows to compute the cost volume .. py:method:: check_conf(**cfg: Dict[str, Union[str, int]]) -> Dict[str, Union[str, int]] Add default values to the dictionary if there are missing elements and check if the dictionary is correct :param cfg: matching cost configuration :type cfg: dict :return cfg: matching cost configuration updated :rtype: dict .. py:method:: point_interval(img_left: xarray.Dataset, img_right: xarray.Dataset, disp: float) -> Tuple[Tuple[int, int], Tuple[int, int]] Update point_p and point_q values if abs(disp) > nb_col - (int(self._window_size / 2) * 2). :param img_left: 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 :type img_left: xarray.Dataset :param img_right: 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 :type img_right: xarray.Dataset :param disp: current disparity :type disp: float :return: the range of the left and right image over which the similarity measure will be applied :rtype: tuple .. py:method:: compute_cost_volume(img_left: xarray.Dataset, img_right: xarray.Dataset, cost_volume: xarray.Dataset) -> xarray.Dataset Computes the cost volume for a pair of images :param img_left: 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 :type img_left: xarray.Dataset :param img_right: 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 :type img_right: xarray.Dataset :param cost_volume: an empty cost volume :type cost_volume: xr.Dataset :return: the cost volume dataset , with the data variables: - cost_volume 3D xarray.DataArray (row, col, disp) :rtype: xarray.Dataset .. py:function:: apply_divide_standard(zncc: numpy.ndarray, img_left: numpy.ndarray, img_right: List[numpy.ndarray], p_std: Tuple[int, int], q_std: Tuple[int, int], i_right: int) Divide by the standard deviation of the intensities of the images :param zncc: :type zncc: np.ndarray :param img_left: standard deviation raster of left image :type img_left: np.ndarray :param img_right: standard deviation raster list of right image (for each subpix) :type img_right: List[np.ndarray] :param p_std: point interval in the left standard deviation image :type p_std: Tuple[int, int] :param q_std: Point interval in the right standard deviation image :type q_std: Tuple[int, int] :param i_right: ith image :type i_right: int