Conditioning#
Detailed Description#
Function Documentation#
applyTransformationToPoints()#
void cv::sfm::applyTransformationToPoints(
InputArray points,
InputArray T,
OutputArray transformed_points )
#include <opencv2/sfm/conditioning.hpp>
Apply Transformation to points.
Parameters
points— Input vector of N-dimensional points.T— Input 3x3 transformation matrix such that \(x = T*X\), where \(X\) are the points to transform and \(x\) the transformed points.transformed_points— Output vector of N-dimensional transformed points.
isotropicPreconditionerFromPoints()#
void cv::sfm::isotropicPreconditionerFromPoints(
InputArray points,
OutputArray T )
#include <opencv2/sfm/conditioning.hpp>
Point conditioning (isotropic).
Computes the transformation matrix such that each coordinate direction will be scaled equally, bringing the centroid to the origin with an average centroid \((1,1,1)^T\).
Reference: [133] 4.4.4 pag.107.
Parameters
points— Input vector of N-dimensional points.T— Output 3x3 transformation matrix.
normalizeIsotropicPoints()#
void cv::sfm::normalizeIsotropicPoints(
InputArray points,
OutputArray normalized_points,
OutputArray T )
#include <opencv2/sfm/conditioning.hpp>
This function normalizes points. (isotropic).
Internally calls preconditionerFromPoints in order to get the scaling matrix before applying applyTransformationToPoints. This operation is an essential step before applying the DLT algorithm in order to consider the result as optimal.
Reference: [133] 4.4.4 pag.107.
Parameters
points— Input vector of N-dimensional points.normalized_points— Output vector of the same N-dimensional points but with mean 0 and average norm \(\sqrt{2}\).T— Output 3x3 transform matrix such that \(x = T*X\), where \(X\) are the points to normalize and \(x\) the normalized points.
normalizePoints()#
void cv::sfm::normalizePoints(
InputArray points,
OutputArray normalized_points,
OutputArray T )
#include <opencv2/sfm/conditioning.hpp>
This function normalizes points (non isotropic).
Internally calls preconditionerFromPoints in order to get the scaling matrix before applying applyTransformationToPoints. This operation is an essential step before applying the DLT algorithm in order to consider the result as optimal.
Reference: [133] 4.4.4 pag.109
Parameters
points— Input vector of N-dimensional points.normalized_points— Output vector of the same N-dimensional points but with mean 0 and average norm \(\sqrt{2}\).T— Output 3x3 transform matrix such that \(x = T*X\), where \(X\) are the points to normalize and \(x\) the normalized points.
preconditionerFromPoints()#
void cv::sfm::preconditionerFromPoints(
InputArray points,
OutputArray T )
#include <opencv2/sfm/conditioning.hpp>
Point conditioning (non isotropic). Computes the transformation matrix such that the two principal moments of the set of points are equal to unity, forming an approximately symmetric circular cloud of points of radius 1 about the origin.
Reference: [133] 4.4.4 pag.109
Parameters
points— Input vector of N-dimensional points.T— Output 3x3 transformation matrix.