class cv::StereoBM
Overview
Class for computing stereo correspondence using the block matching algorithm, introduced and contributed to OpenCV by K. Konolige. Moreā¦
#include <calib3d.hpp> class StereoBM: public cv::StereoMatcher { public: // enums enum { PREFILTER_NORMALIZED_RESPONSE = 0, PREFILTER_XSOBEL = 1, }; // methods virtual int getPreFilterCap() const = 0; virtual int getPreFilterSize() const = 0; virtual int getPreFilterType() const = 0; virtual Rect getROI1() const = 0; virtual Rect getROI2() const = 0; 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; virtual void setROI2(Rect roi2) = 0; virtual void setSmallerBlockSize(int blockSize) = 0; virtual void setTextureThreshold(int textureThreshold) = 0; virtual void setUniquenessRatio(int uniquenessRatio) = 0; static Ptr<StereoBM> create( int numDisparities = 0, int blockSize = 21 ); }; // direct descendants class StereoBM;
Inherited Members
public: // enums enum { DISP_SHIFT = 4, DISP_SCALE = (1 <<DISP_SHIFT), }; // methods virtual void clear(); virtual bool empty() const; virtual String getDefaultName() const; virtual void read(const FileNode& fn); virtual void save(const String& filename) const; virtual void write(FileStorage& fs) const; template <typename _Tp> static Ptr<_Tp> load( const String& filename, const String& objname = String() ); template <typename _Tp> static Ptr<_Tp> loadFromString( const String& strModel, const String& objname = String() ); template <typename _Tp> static Ptr<_Tp> read(const FileNode& fn); 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; protected: // methods void writeFormat(FileStorage& fs) const;
Detailed Documentation
Class for computing stereo correspondence using the block matching algorithm, introduced and contributed to OpenCV by K. Konolige.
Methods
static Ptr<StereoBM> create( int numDisparities = 0, int blockSize = 21 )
Creates StereoBM object.
The function create StereoBM object. You can then call StereoBM::compute() to compute disparity for a specific stereo pair.
Parameters:
numDisparities | the disparity search range. For each pixel algorithm will find the best disparity from 0 (default minimum disparity) to numDisparities. The search range can then be shifted by changing the minimum disparity. |
blockSize | the linear size of the blocks compared by the algorithm. The size should be odd (as the block is centered at the current pixel). Larger block size implies smoother, though less accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher chance for algorithm to find a wrong correspondence. |