OpenCV 4.13.0
開源電腦視覺 (Open Source Computer Vision)
載入中...
搜尋中...
無符合項
基於輪廓的 3D 物體追蹤

詳細描述

實現了 "RAPID-a video rate object tracker" [119] 以及 [77] 的動態控制點提取

類別

class  cv::rapid::GOSTracker
 
class  cv::rapid::OLSTracker
 
class  cv::rapid::Rapid
 圍繞 基於輪廓的 3D 物體追蹤 函數的包裝器,用於統一訪問 更多...
 
class  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>

根據對應關係與遮罩收集對應的 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輸出圖像
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 獲得的 2D 點
tris三角形面連接性
color線條顏色
type線條類型。請參閱 LineTypes
cullBackface啟用基於逆時針 (CCW) 順序的背面剔除

◆ extractControlPoints()

void cv::rapid::extractControlPoints ( int 數字,
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] 第 2.1 節,步驟 b

參數
數字控制點數量
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 數字,
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視訊影格
數字搜尋線數量
len搜尋線半徑
pts3d網格的 3D 點
tris三角形面連接性
K相機矩陣
rvec網格與相機之間的旋轉。輸入值用作初始解。
tvec網格與相機之間的平移。輸入值用作初始解。
rmsd2D 重投影差異
回傳值
可提取並匹配的搜尋線比率
這是此函式的呼叫圖