Operators

# project_hom_point_hom_mat3d (Operator)

## Name

project_hom_point_hom_mat3d — Project a homogeneous 3D point using a 3×4 projection matrix.

## Signature

project_hom_point_hom_mat3d( : : HomMat3D, Px, Py, Pz, Pw : Qx, Qy, Qw)

## Description

projective_trans_hom_point_3d applies the 3×4 projection matrix HomMat3D to all homogeneous input points (Px,Py,Pz,Pw) and returns an array of homogeneous output points (Qx,Qy,Qw). The transformation is described by the homogeneous transformation matrix given in HomMat3D. This corresponds to the following equation (input and output points as homogeneous vectors):

```  / Qx \              / Px \
| Qy | = HomMat3D * | Py |
\ Qw /              | Pz |
\ Pw /
```

To transform the homogeneous coordinates to Euclidean coordinates, they must be divided by Qw:

```(Ex,Ey) = (Qx/Qw,Qy/Qw)
```

This can be achieved directly by calling project_point_hom_mat3d. Thus, project_hom_point_hom_mat3d is primarily useful for transforming points or point sets for which the resulting points might lie on the line at infinity, i.e., points that potentially have Qw = 0, for which the above division cannot be performed.

Note that, consistent with the conventions used by the projection in calibrate_cameras, Qx corresponds to the column coordinate of an image and Qy corresponds to the row coordinate.

## Parallelization

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Multithreading scope: global (may be called from any thread).
• Processed without parallelization.

## Parameters

HomMat3D (input_control)  hom_mat3d (real)

3×4 projection matrix.

Px (input_control)  number(-array) (real / integer)

Input point (x coordinate).

Py (input_control)  number(-array) (real / integer)

Input point (y coordinate).

Pz (input_control)  number(-array) (real / integer)

Input point (z coordinate).

Pw (input_control)  number(-array) (real / integer)

Input point (w coordinate).

Qx (output_control)  real(-array) (real)

Output point (x coordinate).

Qy (output_control)  real(-array) (real)

Output point (y coordinate).

Qw (output_control)  real(-array) (real)

Output point (w coordinate).

## Module

Foundation

 Operators