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

使用置信传播算法计算立体匹配的类。: 更多...

#include <opencv2/cudastereo.hpp>

cv::cuda::StereoBeliefPropagation 的协作图

公共成员函数

virtual void compute (InputArray data, OutputArray disparity, Stream &stream=Stream::Null())=0
 启用立体匹配运算符,该运算符根据指定的数据成本查找视差。
 
virtual void compute (InputArray left, InputArray right, OutputArray disparity, Stream &stream)=0
 
virtual double getDataWeight () const =0
 数据权重
 
virtual double getDiscSingleJump () const =0
 不连续单跳
 
virtual double getMaxDataTerm () const =0
 数据代价截断
 
virtual double getMaxDiscTerm () const =0
 不连续代价截断
 
virtual int getMsgType () const =0
 消息类型 (CV_16SC1 或 CV_32FC1)
 
virtual int getNumIters () const =0
 每个级别的BP迭代次数
 
virtual int getNumLevels () const =0
 级别数
 
virtual void setDataWeight (double data_weight)=0
 
virtual void setDiscSingleJump (double disc_single_jump)=0
 
virtual void setMaxDataTerm (double max_data_term)=0
 
virtual void setMaxDiscTerm (double max_disc_term)=0
 
virtual void setMsgType (int msg_type)=0
 
virtual void setNumIters (int iters)=0
 
virtual void setNumLevels (int levels)=0
 
- 从 cv::StereoMatcher 继承的公共成员函数
virtual void compute (InputArray left, InputArray right, OutputArray disparity)=0
 为指定的立体对计算视差图。
 
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
 

静态公共成员函数

static void estimateRecommendedParams (int width, int height, int &ndisp, int &iters, int &levels)
 使用启发式方法计算指定图像尺寸(width 和 height)的推荐参数(ndisp、iters 和 levels)。
 
- 从 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::StereoMatcher 继承的公共类型
枚举  {
  DISP_SHIFT = 4 ,
  DISP_SCALE = (1 << DISP_SHIFT)
}
 
- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

使用置信传播算法计算立体匹配的类。

该类实现了 [89] 中描述的算法。它可以使用截断线性模型计算自己的数据成本,也可以使用用户提供的数据成本。

注意
StereoBeliefPropagation 需要大量内存用于消息存储

\[width \_ step \cdot height \cdot ndisp \cdot 4 \cdot (1 + 0.25)\]

以及数据成本存储

\[width\_step \cdot height \cdot ndisp \cdot (1 + 0.25 + 0.0625 + \dotsm + \frac{1}{4^{levels}})\]

width_step 是包含填充在内的一行中的字节数。

StereoBeliefPropagation 为数据成本和不连续性项使用截断线性模型

\[DataCost = data \_ weight \cdot \min ( \lvert Img_Left(x,y)-Img_Right(x-d,y) \rvert , max \_ data \_ term)\]

\[DiscTerm = \min (disc \_ single \_ jump \cdot \lvert f_1-f_2 \rvert , max \_ disc \_ term)\]

欲了解更多详情,请参阅 [89]

默认情况下,StereoBeliefPropagation 对消息使用浮点算术和 CV_32FC1 类型。但它也可以使用定点算术和 CV_16SC1 消息类型以获得更好的性能。为了避免在这种情况下发生溢出,参数必须满足以下要求

\[10 \cdot 2^{levels-1} \cdot max \_ data \_ term < SHRT \_ MAX\]

另请参见
StereoMatcher

成员函数文档

◆ compute() [1/2]

virtual void cv::cuda::StereoBeliefPropagation::compute ( InputArray data,
OutputArray disparity,
Stream & stream = Stream::Null() )
纯虚函数

启用立体匹配运算符,该运算符根据指定的数据成本查找视差。

参数
data用户指定的数据成本,一个 msg_type 类型和 Size(<图像列数>*ndisp, <图像行数>) 大小的矩阵。
disparity输出视差图。如果 disparity 为空,则输出类型为 CV_16SC1。否则,类型将保留。在 16 位有符号格式中,视差值没有小数位。
用于异步版本的 Stream

◆ compute() [2/2]

virtual void cv::cuda::StereoBeliefPropagation::compute ( InputArray ,
InputArray ,
OutputArray disparity,
Stream & stream )
纯虚函数

这是一个重载成员函数,为方便起见而提供。它与上述函数唯一的区别在于接受的参数。

◆ estimateRecommendedParams()

static void cv::cuda::StereoBeliefPropagation::estimateRecommendedParams ( int width,
int height,
int & ndisp,
int & iters,
int & levels )
static

使用启发式方法计算指定图像尺寸(width 和 height)的推荐参数(ndisp、iters 和 levels)。

◆ getDataWeight()

virtual double cv::cuda::StereoBeliefPropagation::getDataWeight ( ) const
纯虚函数

数据权重

◆ getDiscSingleJump()

virtual double cv::cuda::StereoBeliefPropagation::getDiscSingleJump ( ) const
纯虚函数

不连续单跳

◆ getMaxDataTerm()

virtual double cv::cuda::StereoBeliefPropagation::getMaxDataTerm ( ) const
纯虚函数

数据代价截断

◆ getMaxDiscTerm()

virtual double cv::cuda::StereoBeliefPropagation::getMaxDiscTerm ( ) const
纯虚函数

不连续代价截断

◆ getMsgType()

virtual int cv::cuda::StereoBeliefPropagation::getMsgType ( ) const
纯虚函数

消息类型 (CV_16SC1 或 CV_32FC1)

◆ getNumIters()

virtual int cv::cuda::StereoBeliefPropagation::getNumIters ( ) const
纯虚函数

每个级别的BP迭代次数

◆ getNumLevels()

virtual int cv::cuda::StereoBeliefPropagation::getNumLevels ( ) const
纯虚函数

级别数

◆ setDataWeight()

virtual void cv::cuda::StereoBeliefPropagation::setDataWeight ( double data_weight)
纯虚函数

◆ setDiscSingleJump()

virtual void cv::cuda::StereoBeliefPropagation::setDiscSingleJump ( double disc_single_jump)
纯虚函数

◆ setMaxDataTerm()

virtual void cv::cuda::StereoBeliefPropagation::setMaxDataTerm ( double max_data_term)
纯虚函数

◆ setMaxDiscTerm()

virtual void cv::cuda::StereoBeliefPropagation::setMaxDiscTerm ( double max_disc_term)
纯虚函数

◆ setMsgType()

virtual void cv::cuda::StereoBeliefPropagation::setMsgType ( int msg_type)
纯虚函数

◆ setNumIters()

virtual void cv::cuda::StereoBeliefPropagation::setNumIters ( int iters)
纯虚函数

◆ setNumLevels()

virtual void cv::cuda::StereoBeliefPropagation::setNumLevels ( int levels)
纯虚函数

此类的文档生成自以下文件