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

使用块匹配算法计算立体对应关系的类,由 K. Konolige 引入并贡献给 OpenCV。更多...

#include <opencv2/calib3d.hpp>

cv::StereoBM 的协作图

公共类型

枚举  {
  PREFILTER_NORMALIZED_RESPONSE = 0 ,
  PREFILTER_XSOBEL = 1
}
 立体匹配算法的预过滤类型。更多...
 
- 从 cv::StereoMatcher 继承的公共类型
枚举  {
  DISP_SHIFT = 4 ,
  DISP_SCALE = (1 << DISP_SHIFT)
}
 

公共成员函数

virtual int getPreFilterCap () const =0
 获取预过滤像素的当前截断值。
 
virtual int getPreFilterSize () const =0
 获取预过滤核的当前大小。
 
virtual int getPreFilterType () const =0
 获取算法中当前使用的预过滤类型。
 
virtual Rect getROI1 () const =0
 获取左图像的当前感兴趣区域 (ROI)。
 
virtual Rect getROI2 () const =0
 获取右图像的当前感兴趣区域 (ROI)。
 
virtual int getSmallerBlockSize () const =0
 获取用于纹理检查的较小块的当前大小。
 
virtual int getTextureThreshold () const =0
 获取当前纹理阈值。
 
virtual int getUniquenessRatio () const =0
 获取当前唯一性比率。
 
virtual void setPreFilterCap (int preFilterCap)=0
 设置预过滤像素的截断值。
 
virtual void setPreFilterSize (int preFilterSize)=0
 设置预过滤核的大小。
 
virtual void setPreFilterType (int preFilterType)=0
 设置算法中使用的预过滤类型。
 
virtual void setROI1 (Rect roi1)=0
 设置左图像的感兴趣区域 (ROI)。
 
virtual void setROI2 (Rect roi2)=0
 设置右图像的感兴趣区域 (ROI)。
 
virtual void setSmallerBlockSize (int blockSize)=0
 设置用于纹理检查的较小块的大小。
 
virtual void setTextureThreshold (int textureThreshold)=0
 设置用于过滤低纹理区域的阈值。
 
virtual void setUniquenessRatio (int uniquenessRatio)=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 Ptr< StereoBMcreate (int numDisparities=0, int blockSize=21)
 创建 StereoBM 对象。
 
- 从 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
 

详细描述

使用块匹配算法计算立体对应关系的类,由 K. Konolige 引入并贡献给 OpenCV。

该类实现了用于立体对应的块匹配算法,用于从立体图像对计算视差图。它提供了微调参数的方法,例如预过滤、纹理阈值、唯一性比率和感兴趣区域 (ROI),以优化性能和准确性。

成员枚举文档

◆ 匿名枚举

匿名枚举

立体匹配算法的预过滤类型。

这些常量定义了在计算视差图之前应用于图像的预过滤类型。

  • PREFILTER_NORMALIZED_RESPONSE: 使用归一化响应进行预过滤。
  • PREFILTER_XSOBEL: 使用 X-Sobel 运算符进行预过滤。
枚举器
PREFILTER_NORMALIZED_RESPONSE 

归一化响应预过滤器。

PREFILTER_XSOBEL 

X-Sobel 预过滤器。

成员函数文档

◆ create()

static Ptr< StereoBM > cv::StereoBM::create ( int numDisparities = 0,
int blockSize = 21 )
static
Python
cv.StereoBM.create([, numDisparities[, blockSize]]) -> retval
cv.StereoBM_create([, numDisparities[, blockSize]]) -> retval

创建 StereoBM 对象。

参数
numDisparities视差搜索范围。对于每个像素,算法将找到从 0(默认最小视差)到 numDisparities 的最佳视差。可以通过改变最小视差来移动搜索范围。
blockSize算法比较的块的线性大小。大小应为奇数(因为块以当前像素为中心)。更大的块大小意味着更平滑但不那么准确的视差图。更小的块大小提供更详细的视差图,但算法找到错误对应关系的几率更高。
返回
指向已创建的 StereoBM 对象的指针。

该函数创建一个 StereoBM 对象。然后您可以调用 StereoBM::compute() 来计算特定立体对的视差。

◆ getPreFilterCap()

virtual int cv::StereoBM::getPreFilterCap ( ) const
纯虚函数
Python
cv.StereoBM.getPreFilterCap() -> retval

获取预过滤像素的当前截断值。

返回
当前预过滤上限值。

◆ getPreFilterSize()

virtual int cv::StereoBM::getPreFilterSize ( ) const
纯虚函数
Python
cv.StereoBM.getPreFilterSize() -> retval

获取预过滤核的当前大小。

返回
当前预过滤器大小。

◆ getPreFilterType()

virtual int cv::StereoBM::getPreFilterType ( ) const
纯虚函数
Python
cv.StereoBM.getPreFilterType() -> retval

获取算法中当前使用的预过滤类型。

返回
当前预过滤类型:0 表示 PREFILTER_NORMALIZED_RESPONSE,1 表示 PREFILTER_XSOBEL。

◆ getROI1()

virtual Rect cv::StereoBM::getROI1 ( ) const
纯虚函数
Python
cv.StereoBM.getROI1() -> retval

获取左图像的当前感兴趣区域 (ROI)。

返回
左侧图像的当前 ROI。

◆ getROI2()

virtual Rect cv::StereoBM::getROI2 ( ) const
纯虚函数
Python
cv.StereoBM.getROI2() -> retval

获取右图像的当前感兴趣区域 (ROI)。

返回
右侧图像的当前 ROI。

◆ getSmallerBlockSize()

virtual int cv::StereoBM::getSmallerBlockSize ( ) const
纯虚函数
Python
cv.StereoBM.getSmallerBlockSize() -> retval

获取用于纹理检查的较小块的当前大小。

返回
当前的较小块大小。

◆ getTextureThreshold()

virtual int cv::StereoBM::getTextureThreshold ( ) const
纯虚函数
Python
cv.StereoBM.getTextureThreshold() -> retval

获取当前纹理阈值。

返回
当前纹理阈值。

◆ getUniquenessRatio()

virtual int cv::StereoBM::getUniquenessRatio ( ) const
纯虚函数
Python
cv.StereoBM.getUniquenessRatio() -> retval

获取当前唯一性比率。

返回
当前唯一性比率。

◆ setPreFilterCap()

virtual void cv::StereoBM::setPreFilterCap ( int preFilterCap)
纯虚函数
Python
cv.StereoBM.setPreFilterCap(preFilterCap) ->

设置预过滤像素的截断值。

参数
preFilterCap截断值。通常在 [1, 63] 范围内。

此值将预过滤器输出限制在 [-preFilterCap, preFilterCap] 范围内,有助于减少预过滤图像中噪声和异常值的影响。

◆ setPreFilterSize()

virtual void cv::StereoBM::setPreFilterSize ( int preFilterSize)
纯虚函数
Python
cv.StereoBM.setPreFilterSize(preFilterSize) ->

设置预过滤核的大小。

参数
preFilterSize预过滤器内核的大小。必须是奇数整数,通常在 5 到 255 之间。

预过滤器大小决定了预过滤操作的空间范围,通过归一化亮度并增强纹理来为视差计算准备图像。更大的尺寸可以减少噪声但可能模糊细节,而更小的尺寸可以保留细节但更容易受到噪声影响。

◆ setPreFilterType()

virtual void cv::StereoBM::setPreFilterType ( int preFilterType)
纯虚函数
Python
cv.StereoBM.setPreFilterType(preFilterType) ->

设置算法中使用的预过滤类型。

参数
preFilterType要使用的预过滤器类型。可能的值为
  • PREFILTER_NORMALIZED_RESPONSE (0):使用归一化响应进行预过滤。
  • PREFILTER_XSOBEL (1):使用 X-Sobel 运算符进行预过滤。

预过滤器类型影响图像在计算视差图之前的准备方式。不同的预过滤方法可以增强特定图像特征或减少噪声,从而影响视差图的质量。

◆ setROI1()

virtual void cv::StereoBM::setROI1 ( Rect roi1)
纯虚函数
Python
cv.StereoBM.setROI1(roi1) ->

设置左图像的感兴趣区域 (ROI)。

参数
roi1左图像的 ROI 矩形。

通过设置 ROI,立体匹配计算被限制在指定区域,通过聚焦图像的相关部分来提高性能和潜在的准确性。

◆ setROI2()

virtual void cv::StereoBM::setROI2 ( Rect roi2)
纯虚函数
Python
cv.StereoBM.setROI2(roi2) ->

设置右图像的感兴趣区域 (ROI)。

参数
roi2右图像的 ROI 矩形。

与 setROI1 类似,这会将计算限制在右图像中的指定区域。

◆ setSmallerBlockSize()

virtual void cv::StereoBM::setSmallerBlockSize ( int blockSize)
纯虚函数
Python
cv.StereoBM.setSmallerBlockSize(blockSize) ->

设置用于纹理检查的较小块的大小。

参数
blockSize较小块的大小。必须是 5 到 255 之间的奇数整数。

此参数确定用于计算纹理方差的块的大小。较小的块捕获更精细的细节,但对噪声更敏感,而较大的块更鲁棒但可能遗漏精细细节。

◆ setTextureThreshold()

virtual void cv::StereoBM::setTextureThreshold ( int textureThreshold)
纯虚函数
Python
cv.StereoBM.setTextureThreshold(textureThreshold) ->

设置用于过滤低纹理区域的阈值。

参数
textureThreshold阈值。必须是非负数。

此参数过滤掉纹理较低的区域(这些区域难以建立对应关系),从而减少视差图中的噪声。更高的值过滤更积极,但可能会丢弃有效信息。

◆ setUniquenessRatio()

virtual void cv::StereoBM::setUniquenessRatio ( int uniquenessRatio)
纯虚函数
Python
cv.StereoBM.setUniquenessRatio(uniquenessRatio) ->

设置用于过滤模糊匹配的唯一性比率。

参数
uniquenessRatio唯一性比率值。通常在 [5, 15] 范围内,但可以是 0 到 100。

此参数确保最佳匹配明显优于次佳匹配,从而减少误报。更高的值更严格,但在困难区域可能会过滤掉有效匹配。


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