OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::optflow::DualTVL1OpticalFlow 類參考抽象

"Dual TV L1" 光流 演算法更多...

#include <opencv2/optflow.hpp>

cv::optflow::DualTVL1OpticalFlow 的協作圖

公共成員函式

virtual double getEpsilon () const =0
 數值方案中使用的停止準則閾值,它是精度和執行時間之間的權衡。
 
virtual double getGamma () const =0
 用於額外光照變化項的係數
 
virtual int getInnerIterations () const =0
 數值方案中使用的內部迭代次數(在離群值濾波之間)。
 
virtual double getLambda () const =0
 資料項的權重引數,附件引數。
 
virtual int getMedianFiltering () const =0
 中值濾波器核大小(1 = 無濾波器)(3 或 5)
 
virtual int getOuterIterations () const =0
 數值方案中使用的外部迭代次數(內迴圈次數)。
 
virtual int getScalesNumber () const =0
 用於建立影像金字塔的尺度數量。
 
virtual double getScaleStep () const =0
 尺度之間的步長 (<1)
 
virtual double getTau () const =0
 數值方案的時間步長。
 
virtual double getTheta () const =0
 (u - v)^2 的權重引數,緊密性引數。
 
virtual bool getUseInitialFlow () const =0
 使用初始光流。
 
virtual int getWarpingsNumber () const =0
 每個尺度的扭曲次數。
 
virtual void setEpsilon (double val)=0
 數值方案中使用的停止準則閾值,它是精度和執行時間之間的權衡。
 
virtual void setGamma (double val)=0
 用於額外光照變化項的係數
 
virtual void setInnerIterations (int val)=0
 數值方案中使用的內部迭代次數(在離群值濾波之間)。
 
virtual void setLambda (double val)=0
 資料項的權重引數,附件引數。
 
virtual void setMedianFiltering (int val)=0
 中值濾波器核大小(1 = 無濾波器)(3 或 5)
 
virtual void setOuterIterations (int val)=0
 數值方案中使用的外部迭代次數(內迴圈次數)。
 
virtual void setScalesNumber (int val)=0
 用於建立影像金字塔的尺度數量。
 
virtual void setScaleStep (double val)=0
 尺度之間的步長 (<1)
 
virtual void setTau (double val)=0
 數值方案的時間步長。
 
virtual void setTheta (double val)=0
 (u - v)^2 的權重引數,緊密性引數。
 
virtual void setUseInitialFlow (bool val)=0
 使用初始光流。
 
virtual void setWarpingsNumber (int val)=0
 每個尺度的扭曲次數。
 
- 從 cv::DenseOpticalFlow 繼承的公共成員函式
virtual void calc (InputArray I0, InputArray I1, InputOutputArray flow)=0
 計算光流。
 
virtual void collectGarbage ()=0
 釋放所有內部緩衝區。
 
- 從 cv::Algorithm 繼承的公共成員函式
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除演算法狀態。
 
virtual bool empty () const
 如果 演算法 為空(例如,在最開始或讀取不成功後),則返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 從檔案儲存中讀取演算法引數。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 將演算法引數儲存到檔案儲存中。
 
void write (FileStorage &fs, const String &name) const
 

靜態公共成員函式

static Ptr< DualTVL1OpticalFlowcreate (double tau=0.25, double lambda=0.15, double theta=0.3, int nscales=5, int warps=5, double epsilon=0.01, int innnerIterations=30, int outerIterations=10, double scaleStep=0.8, double gamma=0.0, int medianFiltering=5, bool useInitialFlow=false)
 建立 cv::DualTVL1OpticalFlow 例項。
 
- 從 cv::Algorithm 繼承的靜態公共成員函式
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 從檔案中載入演算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 從字串載入演算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 從檔案節點讀取演算法。
 

其他繼承成員

- 從 cv::Algorithm 繼承的保護成員函式
void writeFormat (FileStorage &fs) const
 

詳細描述

"Dual TV L1" 光流 演算法

該類實現了在 [316][237] 中描述的“Dual TV L1”光流演算法。以下是控制演算法的重要類成員,您可以在構造類例項後進行設定

  • 成員 double tau 數值方案的時間步長。
  • 成員 double lambda 資料項的權重引數,附件引數。這是最相關的引數,它決定了輸出的平滑度。該引數越小,獲得的解越平滑。它取決於影像的運動範圍,因此其值應適應每個影像序列。
  • 成員 double theta (u - v)\^2 的權重引數,緊密性引數。它充當附件項和正則化項之間的連結。理論上,它應該有一個較小的值,以使兩部分保持一致。該方法對該引數的大範圍值都穩定。
  • 成員 int nscales 用於建立影像金字塔的尺度數量。
  • 成員 int warps 每個尺度的扭曲次數。表示每個尺度計算 I1(x+u0) 和 grad( I1(x+u0) ) 的次數。這是一個確保方法穩定性的引數。它也影響執行時間,因此是速度和精度之間的折衷。
  • 成員 double epsilon 數值方案中使用的停止準則閾值,它是精度和執行時間之間的權衡。小值將以較慢的收斂速度為代價,獲得更準確的解。
  • 成員 int iterations 數值方案中使用的停止準則迭代次數。

C. Zach, T. Pock and H. Bischof, "A Duality Based Approach for Realtime TV-L1 Optical Flow". Javier Sanchez, Enric Meinhardt-Llopis and Gabriele Facciolo. "TV-L1 Optical Flow Estimation".

成員函式文件

◆ create()

static Ptr< DualTVL1OpticalFlow > cv::optflow::DualTVL1OpticalFlow::create ( double tau = 0.25,
double lambda = 0.15,
double theta = 0.3,
int nscales = 5,
int warps = 5,
double epsilon = 0.01,
int innnerIterations = 30,
int outerIterations = 10,
double scaleStep = 0.8,
double gamma = 0.0,
int medianFiltering = 5,
bool useInitialFlow = false )
static
Python
cv.optflow.DualTVL1OpticalFlow.create([, tau[, lambda_[, theta[, nscales[, warps[, epsilon[, innnerIterations[, outerIterations[, scaleStep[, gamma[, medianFiltering[, useInitialFlow]]]]]]]]]]]]) -> retval
cv.optflow.DualTVL1OpticalFlow_create([, tau[, lambda_[, theta[, nscales[, warps[, epsilon[, innnerIterations[, outerIterations[, scaleStep[, gamma[, medianFiltering[, useInitialFlow]]]]]]]]]]]]) -> retval

建立 cv::DualTVL1OpticalFlow 例項。

◆ getEpsilon()

virtual double cv::optflow::DualTVL1OpticalFlow::getEpsilon ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getEpsilon() -> retval

數值方案中使用的停止準則閾值,它是精度和執行時間之間的權衡。

另請參見
setEpsilon

◆ getGamma()

virtual double cv::optflow::DualTVL1OpticalFlow::getGamma ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getGamma() -> retval

用於額外光照變化項的係數

另請參見
setGamma

◆ getInnerIterations()

virtual int cv::optflow::DualTVL1OpticalFlow::getInnerIterations ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getInnerIterations() -> retval

數值方案中使用的內部迭代次數(在離群值濾波之間)。

另請參見
setInnerIterations

◆ getLambda()

virtual double cv::optflow::DualTVL1OpticalFlow::getLambda ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getLambda() -> retval

資料項的權重引數,附件引數。

另請參見
setLambda

◆ getMedianFiltering()

virtual int cv::optflow::DualTVL1OpticalFlow::getMedianFiltering ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getMedianFiltering() -> retval

中值濾波器核大小(1 = 無濾波器)(3 或 5)

另請參見
setMedianFiltering

◆ getOuterIterations()

virtual int cv::optflow::DualTVL1OpticalFlow::getOuterIterations ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getOuterIterations() -> retval

數值方案中使用的外部迭代次數(內迴圈次數)。

另請參見
setOuterIterations

◆ getScalesNumber()

virtual int cv::optflow::DualTVL1OpticalFlow::getScalesNumber ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getScalesNumber() -> retval

用於建立影像金字塔的尺度數量。

另請參見
setScalesNumber

◆ getScaleStep()

virtual double cv::optflow::DualTVL1OpticalFlow::getScaleStep ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getScaleStep() -> retval

尺度之間的步長 (<1)

另請參見
setScaleStep

◆ getTau()

virtual double cv::optflow::DualTVL1OpticalFlow::getTau ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getTau() -> retval

數值方案的時間步長。

另請參見
setTau

◆ getTheta()

virtual double cv::optflow::DualTVL1OpticalFlow::getTheta ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getTheta() -> retval

(u - v)^2 的權重引數,緊密性引數。

另請參見
setTheta

◆ getUseInitialFlow()

virtual bool cv::optflow::DualTVL1OpticalFlow::getUseInitialFlow ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getUseInitialFlow() -> retval

使用初始光流。

另請參見
setUseInitialFlow

◆ getWarpingsNumber()

virtual int cv::optflow::DualTVL1OpticalFlow::getWarpingsNumber ( ) const
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.getWarpingsNumber() -> retval

每個尺度的扭曲次數。

另請參見
setWarpingsNumber

◆ setEpsilon()

virtual void cv::optflow::DualTVL1OpticalFlow::setEpsilon ( double val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setEpsilon(val) ->

數值方案中使用的停止準則閾值,它是精度和執行時間之間的權衡。

另請參見
getEpsilon

◆ setGamma()

virtual void cv::optflow::DualTVL1OpticalFlow::setGamma ( double val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setGamma(val) ->

用於額外光照變化項的係數

另請參見
getGamma

◆ setInnerIterations()

virtual void cv::optflow::DualTVL1OpticalFlow::setInnerIterations ( int val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setInnerIterations(val) ->

數值方案中使用的內部迭代次數(在離群值濾波之間)。

另請參見
getInnerIterations

◆ setLambda()

virtual void cv::optflow::DualTVL1OpticalFlow::setLambda ( double val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setLambda(val) ->

資料項的權重引數,附件引數。

另請參見
getLambda

◆ setMedianFiltering()

virtual void cv::optflow::DualTVL1OpticalFlow::setMedianFiltering ( int val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setMedianFiltering(val) ->

中值濾波器核大小(1 = 無濾波器)(3 或 5)

另請參見
getMedianFiltering

◆ setOuterIterations()

virtual void cv::optflow::DualTVL1OpticalFlow::setOuterIterations ( int val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setOuterIterations(val) ->

數值方案中使用的外部迭代次數(內迴圈次數)。

另請參見
getOuterIterations

◆ setScalesNumber()

virtual void cv::optflow::DualTVL1OpticalFlow::setScalesNumber ( int val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setScalesNumber(val) ->

用於建立影像金字塔的尺度數量。

另請參見
getScalesNumber

◆ setScaleStep()

virtual void cv::optflow::DualTVL1OpticalFlow::setScaleStep ( double val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setScaleStep(val) ->

尺度之間的步長 (<1)

另請參見
getScaleStep

◆ setTau()

virtual void cv::optflow::DualTVL1OpticalFlow::setTau ( double val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setTau(val) ->

數值方案的時間步長。

另請參見
getTau

◆ setTheta()

virtual void cv::optflow::DualTVL1OpticalFlow::setTheta ( double val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setTheta(val) ->

(u - v)^2 的權重引數,緊密性引數。

另請參見
getTheta

◆ setUseInitialFlow()

virtual void cv::optflow::DualTVL1OpticalFlow::setUseInitialFlow ( bool val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setUseInitialFlow(val) ->

使用初始光流。

另請參見
getUseInitialFlow

◆ setWarpingsNumber()

virtual void cv::optflow::DualTVL1OpticalFlow::setWarpingsNumber ( int val)
純虛擬函式
Python
cv.optflow.DualTVL1OpticalFlow.setWarpingsNumber(val) ->

每個尺度的扭曲次數。

另請參見
getWarpingsNumber

此類的文件生成自以下檔案: