OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
基于轮廓的3D对象跟踪

详细说明

实现"RAPID-a video rate object tracker" [119],并结合 [77] 的动态控制点提取

类  cv::rapid::GOSTracker
 
类  cv::rapid::OLSTracker
 
类  cv::rapid::Rapid
 围绕 基于轮廓的3D对象跟踪 功能的包装器,用于统一访问 更多...
 
类  cv::rapid::Tracker
 状态轮廓跟踪器的抽象基类。 更多...
 

函数

void cv::rapid::convertCorrespondencies (InputArray cols, InputArray srcLocations, OutputArray pts2d, InputOutputArray pts3d=noArray(), InputArray mask=noArray())
 
void cv::rapid::drawCorrespondencies (InputOutputArray bundle, InputArray cols, InputArray colors=noArray())
 
void cv::rapid::drawSearchLines (InputOutputArray img, InputArray locations, const Scalar &color)
 
void cv::rapid::drawWireframe (InputOutputArray img, InputArray pts2d, InputArray tris, const Scalar &color, int type=LINE_8, bool cullBackface=false)
 
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)
 
void cv::rapid::extractLineBundle (int len, InputArray ctl2d, InputArray img, OutputArray bundle, OutputArray srcLocations)
 
void cv::rapid::findCorrespondencies (InputArray bundle, OutputArray cols, OutputArray response=noArray())
 
float cv::rapid::rapid (InputArray img, int num, int len, InputArray pts3d, InputArray tris, InputArray K, InputOutputArray rvec, InputOutputArray tvec, double *rmsd=0)
 

函数文档 (Function Documentation)

◆ convertCorrespondencies()

void cv::rapid::convertCorrespondencies ( InputArray cols (列数),
InputArray srcLocations,
OutputArray pts2d,
InputOutputArray pts3d=noArray(),
InputArray mask = noArray() )
Python
cv.rapid.convertCorrespondencies(cols, srcLocations[, pts2d[, pts3d[, mask]]]) -> pts2d, pts3d

#include <opencv2/rapid.hpp>

根据对应关系和掩码收集对应的2d和3d点

参数
cols (列数)线束空间中的对应-位置
srcLocations源图像位置
pts2d2D点
pts3d3D点
mask包含非零值的掩码,用于保留元素

◆ drawCorrespondencies()

void cv::rapid::drawCorrespondencies ( InputOutputArray bundle,
InputArray cols (列数),
InputArray colors=noArray() )
Python
cv.rapid.drawCorrespondencies(bundle, cols[, colors]) -> bundle

#include <opencv2/rapid.hpp>

在lineBundle上调试绘制匹配的对应关系的标记

参数
bundlelineBundle
cols (列数)线束中的列坐标
colors标记的颜色。默认为白色。

◆ drawSearchLines()

void cv::rapid::drawSearchLines ( InputOutputArray img,
InputArray locations,
const Scalar & color )
Python
cv.rapid.drawSearchLines(img, locations, color) -> img

#include <opencv2/rapid.hpp>

在图像上调试绘制搜索线

参数
img输出图像
locationsline bundle的源位置
color线条颜色

◆ drawWireframe()

void cv::rapid::drawWireframe ( InputOutputArray img,
InputArray pts2d,
InputArray tris,
const Scalar & color,
int type=LINE_8,
bool cullBackface=false )
Python
cv.rapid.drawWireframe(img, pts2d, tris, color[, type[, cullBackface]]) -> img

#include <opencv2/rapid.hpp>

绘制三角形网格的线框

参数
img输出图像
pts2dprojectPoints 获得的2D点
tris三角形面的连通性
color线条颜色
type线型。请参阅 LineTypes
cullBackface基于CCW顺序启用背面剔除

◆ 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 )
Python
cv.rapid.extractControlPoints(num, len, pts3d, rvec, tvec, K, imsize, tris[, ctl2d[, ctl3d]]) -> ctl2d, ctl3d

#include <opencv2/rapid.hpp>

从网格投影的轮廓中提取控制点

参见 [77] Sec 2.1, Step b

参数
num控制点数量
len搜索半径 (用于限制ROI)
pts3d网格的3D点
rvec网格和相机之间的旋转
tvec网格和相机之间的平移
K相机内参
imsize视频帧的大小
tris三角形面的连通性
ctl2d控制点的2D位置
ctl3d网格的匹配3D点

◆ extractLineBundle()

void cv::rapid::extractLineBundle ( int len,
InputArray ctl2d,
InputArray img,
OutputArray bundle,
OutputArray srcLocations )
Python
cv.rapid.extractLineBundle(len, ctl2d, img[, bundle[, srcLocations]]) -> bundle, srcLocations

#include <opencv2/rapid.hpp>

从图像中提取线束

参数
len搜索半径。线束将有2*len + 1列。
ctl2d搜索线将以这些点为中心,并垂直于由它们定义的轮廓。线束将有与它们相同数量的行。
img从中读取像素强度值的图像
bundle线束图像,大小为ctl2d.rows() x (2 * len + 1),类型与img相同
srcLocationsbundleimg中的源像素位置,格式为CV_16SC2

◆ findCorrespondencies()

void cv::rapid::findCorrespondencies ( InputArray bundle,
OutputArray cols (列数),
OutputArray response=noArray() )
Python
cv.rapid.findCorrespondencies(bundle[, cols[, response]]) -> cols, response

#include <opencv2/rapid.hpp>

通过在搜索线上(线束中的单行)搜索最大sobel边缘来查找对应的图像位置

参数
bundle线束
cols (列数)线束空间中的对应-位置
response所选点的sobel响应

◆ rapid()

float cv::rapid::rapid ( InputArray img,
int num,
int len,
InputArray pts3d,
InputArray tris,
InputArray K,
InputOutputArray rvec,
InputOutputArray tvec,
double * rmsd=0 )
Python
cv.rapid.rapid(img, num, len, pts3d, tris, K, rvec, tvec) -> retval, rvec, tvec, rmsd

#include <opencv2/rapid.hpp>

执行单次rapid [119] 迭代的高级函数

  1. extractControlPoints
  2. extractLineBundle
  3. findCorrespondencies
  4. convertCorrespondencies
  5. solvePnPRefineLM
参数
img视频帧
num搜索线数量
len搜索线半径
pts3d网格的3D点
tris三角形面的连通性
K相机矩阵
rvec网格和相机之间的旋转。输入值用作初始解。
tvec网格和相机之间的平移。输入值用作初始解。
rmsd2D重投影差
返回
可以提取和匹配的搜索线比例
此函数的调用图