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

此类的文档是从以下文件生成的