Classes | |
class | cv::rapid::GOSTracker |
class | cv::rapid::OLSTracker |
class | cv::rapid::Rapid |
wrapper around silhouette based 3D object tracking function for uniform access More... | |
class | cv::rapid::Tracker |
Abstract base class for stateful silhouette trackers. More... | |
Detailed Description
implements "RAPID-a video rate object tracker" [harris1990rapid] with the dynamic control point extraction of [drummond2002real]
Function Documentation
◆ convertCorrespondencies()
void cv::rapid::convertCorrespondencies | ( | InputArray | cols, |
InputArray | srcLocations, | ||
OutputArray | pts2d, | ||
InputOutputArray | pts3d = noArray() , |
||
InputArray | mask = noArray() |
||
) |
#include <opencv2/rapid.hpp>
Collect corresponding 2d and 3d points based on correspondencies and mask
- Parameters
-
cols correspondence-position per line in line-bundle-space srcLocations the source image location pts2d 2d points pts3d 3d points mask mask containing non-zero values for the elements to be retained
◆ drawCorrespondencies()
void cv::rapid::drawCorrespondencies | ( | InputOutputArray | bundle, |
InputArray | cols, | ||
InputArray | colors = noArray() |
||
) |
#include <opencv2/rapid.hpp>
Debug draw markers of matched correspondences onto a lineBundle
- Parameters
-
bundle the lineBundle cols column coordinates in the line bundle colors colors for the markers. Defaults to white.
◆ drawSearchLines()
void cv::rapid::drawSearchLines | ( | InputOutputArray | img, |
InputArray | locations, | ||
const Scalar & | color | ||
) |
#include <opencv2/rapid.hpp>
Debug draw search lines onto an image
- Parameters
-
img the output image locations the source locations of a line bundle color the line color
◆ drawWireframe()
void cv::rapid::drawWireframe | ( | InputOutputArray | img, |
InputArray | pts2d, | ||
InputArray | tris, | ||
const Scalar & | color, | ||
int | type = LINE_8 , |
||
bool | cullBackface = false |
||
) |
#include <opencv2/rapid.hpp>
Draw a wireframe of a triangle mesh
- Parameters
-
img the output image pts2d the 2d points obtained by projectPoints tris triangle face connectivity color line color type line type. See LineTypes. cullBackface enable back-face culling based on CCW order
◆ extractControlPoints()
void cv::rapid::extractControlPoints | ( | int | num, |
int | len, | ||
InputArray | pts3d, | ||
InputArray | rvec, | ||
InputArray | tvec, | ||
InputArray | K, | ||
const Size & | imsize, | ||
InputArray | tris, | ||
OutputArray | ctl2d, | ||
OutputArray | ctl3d | ||
) |
#include <opencv2/rapid.hpp>
Extract control points from the projected silhouette of a mesh
see [drummond2002real] Sec 2.1, Step b
- Parameters
-
num number of control points len search radius (used to restrict the ROI) pts3d the 3D points of the mesh rvec rotation between mesh and camera tvec translation between mesh and camera K camera intrinsic imsize size of the video frame tris triangle face connectivity ctl2d the 2D locations of the control points ctl3d matching 3D points of the mesh
◆ extractLineBundle()
void cv::rapid::extractLineBundle | ( | int | len, |
InputArray | ctl2d, | ||
InputArray | img, | ||
OutputArray | bundle, | ||
OutputArray | srcLocations | ||
) |
#include <opencv2/rapid.hpp>
Extract the line bundle from an image
- Parameters
-
len the search radius. The bundle will have 2*len + 1
columns.ctl2d the search lines will be centered at this points and orthogonal to the contour defined by them. The bundle will have as many rows. img the image to read the pixel intensities values from bundle line bundle image with size ctl2d.rows() x (2 * len + 1)
and the same type asimg
srcLocations the source pixel locations of bundle
inimg
as CV_16SC2
◆ findCorrespondencies()
void cv::rapid::findCorrespondencies | ( | InputArray | bundle, |
OutputArray | cols, | ||
OutputArray | response = noArray() |
||
) |
#include <opencv2/rapid.hpp>
Find corresponding image locations by searching for a maximal sobel edge along the search line (a single row in the bundle)
- Parameters
-
bundle the line bundle cols correspondence-position per line in line-bundle-space response the sobel response for the selected point
◆ rapid()
float cv::rapid::rapid | ( | InputArray | img, |
int | num, | ||
int | len, | ||
InputArray | pts3d, | ||
InputArray | tris, | ||
InputArray | K, | ||
InputOutputArray | rvec, | ||
InputOutputArray | tvec, | ||
double * | rmsd = 0 |
||
) |
#include <opencv2/rapid.hpp>
High level function to execute a single rapid [harris1990rapid] iteration
- extractControlPoints
- extractLineBundle
- findCorrespondencies
- convertCorrespondencies
- solvePnPRefineLM
- Parameters
-
img the video frame num number of search lines len search line radius pts3d the 3D points of the mesh tris triangle face connectivity K camera matrix rvec rotation between mesh and camera. Input values are used as an initial solution. tvec translation between mesh and camera. Input values are used as an initial solution. rmsd the 2d reprojection difference
- Returns
- ratio of search lines that could be extracted and matched