Source code for pysdic.objects.image_projection_result
from dataclasses import dataclass
from typing import Optional
import numpy
[docs]
@dataclass(slots=True)
class ImageProjectionResult:
r"""
A class to represent the result of the projection of 3D :obj:`world_points` to the image gray levels.
In the documentation :math:`N_p` refers to the number of points, :math:`N_{\text{extrinsic}}` refers to the number of extrinsic parameters, :math:`N_{\text{distortion}}` refers to the number of distortion parameters, and :math:`N_{\text{intrinsic}}` refers to the number of intrinsic parameters.
This class is used to store the results of a transformation, including the transformed points and the Jacobian matrices.
.. seealso::
- :meth:`pysdic.View.image_project` for the method that performs the transformation and returns an instance of this class.
Attributes
----------
gray_levels : :class:`numpy.ndarray`
The values in gray levels after the projection of the 3D world points in the image.
Shape (:math:`N_p`, :math:`N_{\text{channels}}`) where channels is 1 for grayscale images and 3 for RGB images.
image_points : :class:`numpy.ndarray`
The projected pixel points in the image coordinate system :math:`(x, y)`.
Shape (:math:`N_p`, 2)
jacobian_dx : Optional[:class:`numpy.ndarray`]
The Jacobian matrix of the gray levels with respect to the world points.
Shape (:math:`N_p`, :math:`N_{\text{channels}}`, 3) if :obj:`dx` is :obj:`True`, otherwise None.
jacobian_dintrinsic : Optional[:class:`numpy.ndarray`]
The Jacobian matrix of the gray levels with respect to the intrinsic parameters.
Shape (:math:`N_p`, :math:`N_{\text{channels}}`, :math:`N_{\text{intrinsic}}`) if :obj:`dintrinsic` is :obj:`True`, otherwise None.
jacobian_ddistortion : Optional[:class:`numpy.ndarray`]
The Jacobian matrix of the gray levels with respect to the distortion parameters.
Shape (:math:`N_p`, :math:`N_{\text{channels}}`, :math:`N_{\text{distortion}}`) if :obj:`ddistortion` is :obj:`True`, otherwise None.
jacobian_dextrinsic : Optional[:class:`numpy.ndarray`]
The Jacobian matrix of the gray levels with respect to the extrinsic parameters.
Shape (:math:`N_p`, :math:`N_{\text{channels}}`, :math:`N_{\text{extrinsic}}`) if :obj:`dextrinsic` is :obj:`True`, otherwise None.
"""
gray_levels: numpy.ndarray
image_points: numpy.ndarray
jacobian_dx: Optional[numpy.ndarray] = None
jacobian_dintrinsic: Optional[numpy.ndarray] = None
jacobian_ddistortion: Optional[numpy.ndarray] = None
jacobian_dextrinsic: Optional[numpy.ndarray] = None