# opentl::math::CV Class Reference

List of all members.

## Classes
class | RansacSubSetIndexComparator
| RANSAC Set Comperator function for point subsets.
## Public Types
## Static Public Member Functions
static void | estimate2dAffinity (math::Matrix &P1, math::Matrix &P2, math::Transform &T)
| estimates the 2D Affinity A out of the point correspondences s.t. P2 = A*P1
static void | findExtrinsicCameraParams (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::SquareMatrix &intrinsicMat, math::Vector3 &rotVec, math::Vector3 &traslVec, math::Vector4 *distCoeff=NULL)
| Compute Euclidean pose parameters (extrinsic camera parameters) from 3D/2D point correspondences of a calibrated camera.
static int | gpDLT (math::Transform &Trec, math::Matrix &X, math::Matrix &x, math::Transform &Tbar, math::SquareMatrix &K, math::Matrix *Q=NULL, math::Vector *p0=NULL, math::Matrix *P=NULL)
| computes P with the generalized projective DLT algorithm
static int | meanShiftClustering (math::Matrix &X, std::vector< boost::shared_ptr< math::Vector > > &clusters, std::vector< int > &cluster_ids, double bandWidth, MSKernelType kernelType=math::CV::GAUSS, double minNorm=0.0001, int maxIter=100, math::Vector *weights=NULL, bool bPruneNonMaxima=false)
| Mean-shift clustering algorithm.
static void | meanShiftOptimizer (math::Matrix &X, math::Vector &x0, math::Vector &x, double bandWidth, MSKernelType kernelType=math::CV::GAUSS, double minNorm=0.0001, int maxIter=100, math::Vector *weights=NULL, math::Matrix *traj=NULL)
| Internal Mean-shift optimizer.
static double | ransac2dLine (std::vector< math::Vector2 * > &inputData, std::vector< int > &idxListOfBestSamples, double delta, double desiredProbabilityForNoOutliers, double maximalOutlierPercentage, math::Vector4 &bestLineParams)
| RANdom SAmple Consensus (RANSAC) algorithm to remove outliers frome detected line segments.
static double | triangDLT (math::Vector4 *X, math::Vector *z, math::Matrix *Projmats)
| Calibrated multi-camera point triangulation based on the DLT algorithm.

## Member Enumeration Documentation

enum opentl::math::CV::MSKernelType

Type of kernel for mean-shift: Linear, Epanechnikov, Gaussian

Enumerator:

  LINEAR |
  EPANECH |
  GAUSS |

## Member Function Documentation

static void opentl::math::CV::estimate2dAffinity | ( | math::Matrix & | P1,
|  | math::Matrix & | P2,
|  | math::Transform & | T |
| ) |  |  | `[static]`

estimates the 2D Affinity A out of the point correspondences s.t. P2 = A*P1

Parameters:

  | P1 | homogeneous 2d point correspondences part1 (3xn)
  | P2 | homogeneous 2d point correspondences part2 (3xn)
  | T | the estimated Transformation

static void opentl::math::CV::findExtrinsicCameraParams | ( | const math::Matrix & | bodyPoints,
|  | const math::Matrix & | screenPoints,
|  | const math::SquareMatrix & | intrinsicMat,
|  | math::Vector3 & | rotVec,
|  | math::Vector3 & | traslVec,
|  | math::Vector4 * | distCoeff = `NULL` |
| ) |  |  | `[static]`

Compute Euclidean pose parameters (extrinsic camera parameters) from 3D/2D point correspondences of a calibrated camera.

Parameters:

  | bodyPoints | The array of object points, 3xN, where N is the number of points in the view
  | screenPoints | The array of corresponding image points, 2xN or Nx2, where N is the number of points in the view
  | intrinsicMat | The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]
  | rotVec | The output 3x1 or 1x3 rotation vector (representation of a rotation matrix through the Rodrigues' formula).
  | traslVec | The output 3x1 or 1x3 translation vector
  | distCoeff | The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is NULL, all distortion coefficients are considered 0's

static int opentl::math::CV::gpDLT | ( | math::Transform & | Trec,
|  | math::Matrix & | X,
|  | math::Matrix & | x,
|  | math::Transform & | Tbar,
|  | math::SquareMatrix & | K,
|  | math::Matrix * | Q = `NULL`,
|  | math::Vector * | p0 = `NULL`,
|  | math::Matrix * | P = `NULL` |
| ) |  |  | `[static]`

computes P with the generalized projective DLT algorithm

Parameters:

  | Trec | return reconstructed Transformation
  | X | stacked homogeneous model points (4xN)
  | x | stacked corresponding homogeneous screen points (3xN)
  | Tbar | constant reference T matrix
  | K | intrinsic 3x3 camera matrix
  | Q | constraint matrix => used if given
  | p0 | constraint vector => used if given
  | P | if matrix is given, the 3x4 projective Matrix is returned within

Returns:
  0 if everything's ok, -1 if an error occured

static int opentl::math::CV::meanShiftClustering | ( | math::Matrix & | X,
|  | std::vector< boost::shared_ptr< math::Vector > > & | clusters,
|  | std::vector< int > & | cluster_ids,
|  | double | bandWidth,
|  | MSKernelType | kernelType = `math::CV::GAUSS`,
|  | double | minNorm = `0.0001`,
|  | int | maxIter = `100`,
|  | math::Vector * | weights = `NULL`,
|  | bool | bPruneNonMaxima = `false` |
| ) |  |  | `[static]`

Mean-shift clustering algorithm.

Parameters:

  | X | Input data set (d x n), where d is the vector dimension and n the number of points
  | clusters | Output cluster centers
  | cluster_ids | Output cluster labels for each data point
  | (kernelType,bandWidth,minNorm,maxIter) | Input parameters for the mean-shift optimizer
  | weights | Weights for each sample kernel
  | bPruneNonMaxima | Flag: if non-maxima such as saddle points have to be removed (method: small perturbation of cluster centers, re-run mean-shift and check for convergence to the same center)

static void opentl::math::CV::meanShiftOptimizer | ( | math::Matrix & | X,
|  | math::Vector & | x0,
|  | math::Vector & | x,
|  | double | bandWidth,
|  | MSKernelType | kernelType = `math::CV::GAUSS`,
|  | double | minNorm = `0.0001`,
|  | int | maxIter = `100`,
|  | math::Vector * | weights = `NULL`,
|  | math::Matrix * | traj = `NULL` |
| ) |  |  | `[static]`

Internal Mean-shift optimizer.

Parameters:

  | X | Input data set (dim x N)
  | x0 | Input start point (dim x 1)
  | x | Output estimated mode
  | kernelType | Input type of kernel (linear, Epanechnikov, Gauss)
  | bandWidth | Kernel width (h)
  | minNorm | Convergence criterion (minimum step norm)
  | maxIter | maximum number of iteration
  | traj | = (optional) output trajectory during optimization

static double opentl::math::CV::ransac2dLine | ( | std::vector< math::Vector2 * > & | inputData,
|  | std::vector< int > & | idxListOfBestSamples,
|  | double | delta,
|  | double | desiredProbabilityForNoOutliers,
|  | double | maximalOutlierPercentage,
|  | math::Vector4 & | bestLineParams |
| ) |  |  | `[static]`

RANdom SAmple Consensus (RANSAC) algorithm to remove outliers frome detected line segments.

Parameters:

  | inputData | Vector of 2d points found possibly belonging to an edge
  | idxListOfBestSamples | Result of RANSAC: list of best point indices found in the input data
  | delta | Line thickness, as threshold for inliers, e.g. 0.5
  | desiredProbabilityForNoOutliers | The probability that at least one of the selected subsets doesn't contain an outlier, e.g. 0.95 (has influence on RANSAC tries)
  | maximalOutlierPercentage | The maximal expected percentage of outliers, e.g. 0.7 ((has influence on RANSAC tries)
  | bestLineParams | Line parameters of best line: vec[0] = nx, normal of line vec[1] = ny, normal of line vec[2] = x-coordinate of sample point vec[3] = y-coordinate of sample point

Returns:
  Returns the percentage of data used in the least squares estimate.

static double opentl::math::CV::triangDLT | ( | math::Vector4 * | X,
|  | math::Vector * | z,
|  | math::Matrix * | Projmats |
| ) |  |  | `[static]`

Calibrated multi-camera point triangulation based on the DLT algorithm.

Parameters:

  | X | output 3D point in world coordinates
  | z | input 2D measurements (x,y) stacked in a vector
  | Projmats | camera (3x4) projection matrices, stacked together