CentralCamera.visjac_p#

CentralCamera.visjac_p(uv: ndarray | float | int | list[float | int] | tuple[float | int, ...], depth: float | ndarray) ndarray[source]#

Visual Jacobian for point features

Parameters:
  • p (array_like(2), ndarray(2,N)) – image plane point or points

  • depth (float, array_like(N)) – point depth

Returns:

visual Jacobian matrix

Return type:

ndarray(2,6), ndarray(2N,6)

Compute the image Jacobian \(\mat{J}\) which maps

\[\dvec{p} = \mat{J}(\vec{p}, z) \vec{\nu}\]

camera spatial velocity \(\vec{\nu}\) to the image plane velocity \(\dvec{p}\) of the point.

If p describes multiple points then return a stack of these \(2\times 6\) matrices, one per point.

Depth is the z-component of the point’s coordinate in the camera frame. If depth is a scalar then it is the depth for all points.

Example:

>>> from machinevisiontoolbox import CentralCamera
>>> from spatialmath import SE3
>>> camera = CentralCamera.Default()
>>> camera.visjac_p((200, 300), 2)
array([[-400. ,    0. , -150. ,   75. , -912.5, -200. ],
       [   0. , -400. , -100. ,  850. ,  -75. ,  300. ]])
References:
Seealso:

flowfield visjac_p_polar visjac_l visjac_e