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

DIS 光流演算法。 更多...

#include <opencv2/video/tracking.hpp>

cv::DISOpticalFlow 的協作圖

公共型別

列舉  {
  PRESET_ULTRAFAST = 0 ,
  PRESET_FAST = 1 ,
  PRESET_MEDIUM = 2
}
 

公共成員函式

virtual int getFinestScale () const =0
 計算光流的高斯金字塔最精細級別(零級別對應於原始影像解析度)。最終光流透過雙線性上取樣獲得。
 
virtual int getGradientDescentIterations () const =0
 塊逆搜尋階段中梯度下降迭代的最大次數。在某些情況下,更高的值可能會提高質量。
 
virtual int getPatchSize () const =0
 用於匹配的影像塊大小(以畫素為單位)。通常,預設的8x8塊在大多數情況下都足夠好用。
 
virtual int getPatchStride () const =0
 相鄰塊之間的步幅。必須小於塊大小。值越低對應更高的光流質量。
 
virtual bool getUseMeanNormalization () const =0
 計算塊距離時是否使用塊的均值歸一化。預設情況下啟用,因為它通常能顯著提高質量,因為對光照變化的魯棒性增強。如果您確定序列不包含任何光照變化,請關閉它。
 
virtual bool getUseSpatialPropagation () const =0
 是否使用良好光流向量的空間傳播。此選項預設開啟,因為它通常平均效果更好,有時可以幫助從DIS光流演算法採用的粗到細方案引入的重大錯誤中恢復。然而,關閉此選項可以使輸出光流場更平滑一些。
 
virtual float getVariationalRefinementAlpha () const =0
 平滑項的權重。
 
virtual float getVariationalRefinementDelta () const =0
 顏色恆定項的權重。
 
virtual float getVariationalRefinementEpsilon () const =0
 魯棒懲罰項的範數值偏移。
 
virtual float getVariationalRefinementGamma () const =0
 梯度恆定項的權重。
 
virtual int getVariationalRefinementIterations () const =0
 每個尺度的變分細化不動點迭代次數。設定為零以完全停用變分細化。更高的值通常會產生更平滑和高質量的光流。
 
virtual void setFinestScale (int val)=0
 計算光流的高斯金字塔最精細級別(零級別對應於原始影像解析度)。最終光流透過雙線性上取樣獲得。
 
virtual void setGradientDescentIterations (int val)=0
 塊逆搜尋階段中梯度下降迭代的最大次數。在某些情況下,更高的值可能會提高質量。
 
virtual void setPatchSize (int val)=0
 用於匹配的影像塊大小(以畫素為單位)。通常,預設的8x8塊在大多數情況下都足夠好用。
 
virtual void setPatchStride (int val)=0
 相鄰塊之間的步幅。必須小於塊大小。值越低對應更高的光流質量。
 
virtual void setUseMeanNormalization (bool val)=0
 計算塊距離時是否使用塊的均值歸一化。預設情況下啟用,因為它通常能顯著提高質量,因為對光照變化的魯棒性增強。如果您確定序列不包含任何光照變化,請關閉它。
 
virtual void setUseSpatialPropagation (bool val)=0
 是否使用良好光流向量的空間傳播。此選項預設開啟,因為它通常平均效果更好,有時可以幫助從DIS光流演算法採用的粗到細方案引入的重大錯誤中恢復。然而,關閉此選項可以使輸出光流場更平滑一些。
 
virtual void setVariationalRefinementAlpha (float val)=0
 平滑項的權重。
 
virtual void setVariationalRefinementDelta (float val)=0
 顏色恆定項的權重。
 
virtual void setVariationalRefinementEpsilon (float val)=0
 魯棒懲罰項的範數值偏移。
 
virtual void setVariationalRefinementGamma (float val)=0
 梯度恆定項的權重。
 
virtual void setVariationalRefinementIterations (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
 如果 Algorithm 為空(例如,在最開始或讀取不成功後),則返回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< DISOpticalFlowcreate (int preset=DISOpticalFlow::PRESET_FAST)
 建立 DISOpticalFlow 的例項。
 
- 繼承自 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
 

詳細描述

DIS 光流演算法。

此類實現了密集逆搜尋(Dense Inverse Search,DIS)光流演算法。有關該演算法的更多詳細資訊,請參見 [153]。包含三個預設,引數預選,可在速度和質量之間提供合理的權衡。然而,即使最慢的預設也相對較快,如果您需要更好的質量且不關心速度,請使用DeepFlow。

與論文中描述的演算法相比,此實現包含幾個附加功能,包括光流向量的空間傳播(getUseSpatialPropagation),以及利用傳遞給 calc 的初始光流近似的選項(如果傳遞前一幀的光流場,這本質上是時間傳播)。

成員列舉文件

◆ 匿名列舉

匿名列舉
列舉器
PRESET_ULTRAFAST 
PRESET_FAST 
PRESET_MEDIUM 

成員函式文件

◆ create()

static Ptr< DISOpticalFlow > cv::DISOpticalFlow::create ( int preset = DISOpticalFlow::PRESET_FAST)
static
Python
cv.DISOpticalFlow.create([, preset]) -> retval
cv.DISOpticalFlow_create([, preset]) -> retval

建立 DISOpticalFlow 的例項。

引數
presetPRESET_ULTRAFAST、PRESET_FAST 和 PRESET_MEDIUM 之一

◆ getFinestScale()

virtual int cv::DISOpticalFlow::getFinestScale ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getFinestScale() -> retval

計算光流的高斯金字塔最精細級別(零級別對應於原始影像解析度)。最終光流透過雙線性上取樣獲得。

另請參見
setFinestScale

◆ getGradientDescentIterations()

virtual int cv::DISOpticalFlow::getGradientDescentIterations ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getGradientDescentIterations() -> retval

塊逆搜尋階段中梯度下降迭代的最大次數。在某些情況下,更高的值可能會提高質量。

另請參見
setGradientDescentIterations

◆ getPatchSize()

virtual int cv::DISOpticalFlow::getPatchSize ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getPatchSize() -> retval

用於匹配的影像塊大小(以畫素為單位)。通常,預設的8x8塊在大多數情況下都足夠好用。

另請參見
setPatchSize

◆ getPatchStride()

virtual int cv::DISOpticalFlow::getPatchStride ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getPatchStride() -> retval

相鄰塊之間的步幅。必須小於塊大小。值越低對應更高的光流質量。

另請參見
setPatchStride

◆ getUseMeanNormalization()

virtual bool cv::DISOpticalFlow::getUseMeanNormalization ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getUseMeanNormalization() -> retval

計算塊距離時是否使用塊的均值歸一化。預設情況下啟用,因為它通常能顯著提高質量,因為對光照變化的魯棒性增強。如果您確定序列不包含任何光照變化,請關閉它。

另請參見
setUseMeanNormalization

◆ getUseSpatialPropagation()

virtual bool cv::DISOpticalFlow::getUseSpatialPropagation ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getUseSpatialPropagation() -> retval

是否使用良好光流向量的空間傳播。此選項預設開啟,因為它通常平均效果更好,有時可以幫助從DIS光流演算法採用的粗到細方案引入的重大錯誤中恢復。然而,關閉此選項可以使輸出光流場更平滑一些。

另請參見
setUseSpatialPropagation

◆ getVariationalRefinementAlpha()

virtual float cv::DISOpticalFlow::getVariationalRefinementAlpha ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getVariationalRefinementAlpha() -> retval

平滑項的權重。

另請參見
setVariationalRefinementAlpha

◆ getVariationalRefinementDelta()

virtual float cv::DISOpticalFlow::getVariationalRefinementDelta ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getVariationalRefinementDelta() -> retval

顏色恆定項的權重。

另請參見
setVariationalRefinementDelta

◆ getVariationalRefinementEpsilon()

virtual float cv::DISOpticalFlow::getVariationalRefinementEpsilon ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getVariationalRefinementEpsilon() -> retval

魯棒懲罰項的範數值偏移。

另請參見
setVariationalRefinementEpsilon

◆ getVariationalRefinementGamma()

virtual float cv::DISOpticalFlow::getVariationalRefinementGamma ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getVariationalRefinementGamma() -> retval

梯度恆定項的權重。

另請參見
setVariationalRefinementGamma

◆ getVariationalRefinementIterations()

virtual int cv::DISOpticalFlow::getVariationalRefinementIterations ( ) const
純虛擬函式
Python
cv.DISOpticalFlow.getVariationalRefinementIterations() -> retval

每個尺度的變分細化不動點迭代次數。設定為零以完全停用變分細化。更高的值通常會產生更平滑和高質量的光流。

另請參見
setGradientDescentIterations

◆ setFinestScale()

virtual void cv::DISOpticalFlow::setFinestScale ( int val)
純虛擬函式
Python
cv.DISOpticalFlow.setFinestScale(val) ->

計算光流的高斯金字塔最精細級別(零級別對應於原始影像解析度)。最終光流透過雙線性上取樣獲得。

另請參見
getFinestScale

◆ setGradientDescentIterations()

virtual void cv::DISOpticalFlow::setGradientDescentIterations ( int val)
純虛擬函式
Python
cv.DISOpticalFlow.setGradientDescentIterations(val) ->

塊逆搜尋階段中梯度下降迭代的最大次數。在某些情況下,更高的值可能會提高質量。

另請參見
getGradientDescentIterations

◆ setPatchSize()

virtual void cv::DISOpticalFlow::setPatchSize ( int val)
純虛擬函式
Python
cv.DISOpticalFlow.setPatchSize(val) ->

用於匹配的影像塊大小(以畫素為單位)。通常,預設的8x8塊在大多數情況下都足夠好用。

另請參見
getPatchSize

◆ setPatchStride()

virtual void cv::DISOpticalFlow::setPatchStride ( int val)
純虛擬函式
Python
cv.DISOpticalFlow.setPatchStride(val) ->

相鄰塊之間的步幅。必須小於塊大小。值越低對應更高的光流質量。

另請參見
getPatchStride

◆ setUseMeanNormalization()

virtual void cv::DISOpticalFlow::setUseMeanNormalization ( bool val)
純虛擬函式
Python
cv.DISOpticalFlow.setUseMeanNormalization(val) ->

計算塊距離時是否使用塊的均值歸一化。預設情況下啟用,因為它通常能顯著提高質量,因為對光照變化的魯棒性增強。如果您確定序列不包含任何光照變化,請關閉它。

另請參見
getUseMeanNormalization

◆ setUseSpatialPropagation()

virtual void cv::DISOpticalFlow::setUseSpatialPropagation ( bool val)
純虛擬函式
Python
cv.DISOpticalFlow.setUseSpatialPropagation(val) ->

是否使用良好光流向量的空間傳播。此選項預設開啟,因為它通常平均效果更好,有時可以幫助從DIS光流演算法採用的粗到細方案引入的重大錯誤中恢復。然而,關閉此選項可以使輸出光流場更平滑一些。

另請參見
getUseSpatialPropagation

◆ setVariationalRefinementAlpha()

virtual void cv::DISOpticalFlow::setVariationalRefinementAlpha ( float val)
純虛擬函式
Python
cv.DISOpticalFlow.setVariationalRefinementAlpha(val) ->

平滑項的權重。

另請參見
getVariationalRefinementAlpha

◆ setVariationalRefinementDelta()

virtual void cv::DISOpticalFlow::setVariationalRefinementDelta ( float val)
純虛擬函式
Python
cv.DISOpticalFlow.setVariationalRefinementDelta(val) ->

顏色恆定項的權重。

另請參見
getVariationalRefinementDelta

◆ setVariationalRefinementEpsilon()

virtual void cv::DISOpticalFlow::setVariationalRefinementEpsilon ( float val)
純虛擬函式
Python
cv.DISOpticalFlow.setVariationalRefinementEpsilon(val) ->

魯棒懲罰項的範數值偏移。

另請參見
getVariationalRefinementEpsilon

◆ setVariationalRefinementGamma()

virtual void cv::DISOpticalFlow::setVariationalRefinementGamma ( float val)
純虛擬函式
Python
cv.DISOpticalFlow.setVariationalRefinementGamma(val) ->

梯度恆定項的權重。

另請參見
getVariationalRefinementGamma

◆ setVariationalRefinementIterations()

virtual void cv::DISOpticalFlow::setVariationalRefinementIterations ( int val)
純虛擬函式
Python
cv.DISOpticalFlow.setVariationalRefinementIterations(val) ->

塊逆搜尋階段中梯度下降迭代的最大次數。在某些情況下,更高的值可能會提高質量。

另請參見
getGradientDescentIterations

此類的文件由以下檔案生成