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

該類實現了修改後的 H. Hirschmuller 演算法 [128]。限制和區別如下:更多...

#include <opencv2/cudastereo.hpp>

cv::cuda::StereoSGM 協作圖

公共成員函式

virtual void compute (InputArray left, InputArray right, OutputArray disparity) CV_OVERRIDE=0
 為指定的立體對計算視差圖。
 
virtual void compute (InputArray left, InputArray right, OutputArray disparity, Stream &stream)=0
 使用指定的 CUDA Stream 計算視差圖。
 
- 繼承自 cv::StereoSGBM 的公共成員函式
virtual int getMode () const =0
 
virtual int getP1 () const =0
 
virtual int getP2 () const =0
 
virtual int getPreFilterCap () const =0
 
virtual int getUniquenessRatio () const =0
 
virtual void setMode (int mode)=0
 
virtual void setP1 (int P1)=0
 
virtual void setP2 (int P2)=0
 
virtual void setPreFilterCap (int preFilterCap)=0
 
virtual void setUniquenessRatio (int uniquenessRatio)=0
 
- 繼承自 cv::StereoMatcher 的公共成員函式
virtual int getBlockSize () const =0
 
virtual int getDisp12MaxDiff () const =0
 
virtual int getMinDisparity () const =0
 
virtual int getNumDisparities () const =0
 
virtual int getSpeckleRange () const =0
 
virtual int getSpeckleWindowSize () const =0
 
virtual void setBlockSize (int blockSize)=0
 
virtual void setDisp12MaxDiff (int disp12MaxDiff)=0
 
virtual void setMinDisparity (int minDisparity)=0
 
virtual void setNumDisparities (int numDisparities)=0
 
virtual void setSpeckleRange (int speckleRange)=0
 
virtual void setSpeckleWindowSize (int speckleWindowSize)=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
 

附加繼承成員

- 繼承自 cv::StereoSGBM 的公共型別
列舉  {
  MODE_SGBM = 0 ,
  MODE_HH = 1 ,
  MODE_SGBM_3WAY = 2 ,
  MODE_HH4 = 3
}
 
- 繼承自 cv::StereoMatcher 的公共型別
列舉  {
  DISP_SHIFT = 4 ,
  DISP_SCALE = (1 << DISP_SHIFT)
}
 
- 繼承自 cv::StereoSGBM 的靜態公共成員函式
static Ptr< StereoSGBMcreate (int minDisparity=0, int numDisparities=16, int blockSize=3, int P1=0, int P2=0, int disp12MaxDiff=0, int preFilterCap=0, int uniquenessRatio=0, int speckleWindowSize=0, int speckleRange=0, int mode=StereoSGBM::MODE_SGBM)
 建立 StereoSGBM 物件。
 
- 繼承自 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
 

詳細描述

該類實現了修改後的 H. Hirschmuller 演算法 [128]。限制和區別如下

  • 預設情況下,該演算法僅使用水平和垂直路徑的 4 個方向,而非 8 個。在 createStereoSGM 中將 mode 設定為 StereoSGM::MODE_HH 以執行該演算法的完整變體。
  • 互資訊成本函式未實現。相反,為了魯棒性,使用了來自 [253] 的視窗大小為 \(9 \times 7\) 的中心對稱 Census 變換。
另請參見
cv::StereoSGBM

成員函式文件

◆ compute() [1/2]

virtual void cv::cuda::StereoSGM::compute ( InputArray ,
InputArray ,
OutputArray disparity )
純虛擬函式

為指定的立體對計算視差圖。

引數
左側 8 位或 16 位無符號單通道影像。
右側影像,與左側影像大小和型別相同。
disparity輸出視差圖。它與輸入影像具有相同的大小。 StereoSGM 計算 16 位定點視差圖(其中每個視差值有 4 個小數位)。

實現了 cv::StereoMatcher

◆ compute() [2/2]

virtual void cv::cuda::StereoSGM::compute ( InputArray ,
InputArray ,
OutputArray disparity,
Stream & stream )
純虛擬函式

使用指定的 CUDA Stream 計算視差圖。

另請參見
compute

此類的文件是從以下檔案生成的