OpenCV 4.11.0
开源计算机视觉库
正在加载…
正在搜索…
无匹配项
基于轮廓的3D物体跟踪

详细描述

实现了“RAPID——一种视频速率物体跟踪器” [115],并结合了 [73] 的动态控制点提取方法。

类  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)
 

函数文档

◆ 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>

基于对应关系和掩码收集对应的二维和三维点

参数
cols每行在行束空间中的对应位置
srcLocations源图像位置
pts2d二维点
pts3d三维点
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>

调试绘制匹配对应关系的标记到行束上

参数
bundle行束
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输出图像
locations行束的源位置
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输出图像
pts2d通过 projectPoints 获得的二维点
tris三角面连接性
color线条颜色
type线条类型。参见 LineTypes
cullBackface基于逆时针顺序启用背面剔除

◆ 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>

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

参见 [73] 第2.1节,步骤b

参数
num控制点数
len搜索半径(用于限制感兴趣区域)
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每行在行束空间中的对应位置
响应所选点的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>

执行单个快速 [115] 迭代的高级函数

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