OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::cuda::StereoSGM 类参考抽象

该类实现了改进的 H. Hirschmuller 算法 [125]。限制和区别如下:更多…

#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 计算视差图。
 
- 从 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 继承的公共类型
enum  {
  MODE_SGBM = 0 ,
  MODE_HH = 1 ,
  MODE_SGBM_3WAY = 2 ,
  MODE_HH4 = 3
}
 
- 从 cv::StereoMatcher 继承的公共类型
enum  {
  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算法 [125]。局限性和区别如下:

  • 默认情况下,该算法仅使用水平和垂直路径这4个方向,而不是8个方向。在createStereoSGM中设置mode=StereoSGM::MODE_HH 以运行该算法的完整变体。
  • 未实现互信息代价函数。为了提高鲁棒性,而是使用了来自[250]的具有\(9 \times 7\)窗口大小的中心对称普查变换。
另请参见
cv::StereoSGBM

成员函数文档

◆ compute() [1/2]

virtual void cv::cuda::StereoSGM::compute ( InputArray left,
InputArray right,
OutputArray disparity )
纯虚函数

计算指定立体图像对的视差图。

参数
left左8位或16位无符号单通道图像。
right与左图像大小和类型相同的右图像。
视差图输出视差图。它与输入图像大小相同。StereoSGM计算16位定点视差图(其中每个视差值具有4位小数位)。

实现 cv::StereoMatcher.

◆ compute() [2/2]

virtual void cv::cuda::StereoSGM::compute ( InputArray left,
InputArray right,
OutputArray 视差图,
& stream )
纯虚函数

使用指定的 CUDA 计算视差图。

另请参见
compute

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