123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- #ifndef __OPENCV_STEREO_HPP__
- #define __OPENCV_STEREO_HPP__
- #include "opencv2/core.hpp"
- #include "opencv2/features2d.hpp"
- #include "opencv2/core/affine.hpp"
- #include "opencv2/stereo/descriptor.hpp"
- #include "opencv2/stereo/matching.hpp"
- namespace cv
- {
- namespace stereo
- {
-
-
-
-
-
-
- class StereoMatcher : public Algorithm
- {
- public:
- enum { DISP_SHIFT = 4,
- DISP_SCALE = (1 << DISP_SHIFT)
- };
-
- virtual void compute( InputArray left, InputArray right,
- OutputArray disparity ) = 0;
- virtual int getMinDisparity() const = 0;
- virtual void setMinDisparity(int minDisparity) = 0;
- virtual int getNumDisparities() const = 0;
- virtual void setNumDisparities(int numDisparities) = 0;
- virtual int getBlockSize() const = 0;
- virtual void setBlockSize(int blockSize) = 0;
- virtual int getSpeckleWindowSize() const = 0;
- virtual void setSpeckleWindowSize(int speckleWindowSize) = 0;
- virtual int getSpeckleRange() const = 0;
- virtual void setSpeckleRange(int speckleRange) = 0;
- virtual int getDisp12MaxDiff() const = 0;
- virtual void setDisp12MaxDiff(int disp12MaxDiff) = 0;
- };
-
- enum {
- CV_SPECKLE_REMOVAL_ALGORITHM, CV_SPECKLE_REMOVAL_AVG_ALGORITHM
- };
-
- enum{
- CV_QUADRATIC_INTERPOLATION, CV_SIMETRICV_INTERPOLATION
- };
-
- class StereoBinaryBM : public StereoMatcher
- {
- public:
- enum { PREFILTER_NORMALIZED_RESPONSE = 0,
- PREFILTER_XSOBEL = 1
- };
- virtual int getPreFilterType() const = 0;
- virtual void setPreFilterType(int preFilterType) = 0;
- virtual int getPreFilterSize() const = 0;
- virtual void setPreFilterSize(int preFilterSize) = 0;
- virtual int getPreFilterCap() const = 0;
- virtual void setPreFilterCap(int preFilterCap) = 0;
- virtual int getTextureThreshold() const = 0;
- virtual void setTextureThreshold(int textureThreshold) = 0;
- virtual int getUniquenessRatio() const = 0;
- virtual void setUniquenessRatio(int uniquenessRatio) = 0;
- virtual int getSmallerBlockSize() const = 0;
- virtual void setSmallerBlockSize(int blockSize) = 0;
- virtual int getScalleFactor() const = 0 ;
- virtual void setScalleFactor(int factor) = 0;
- virtual int getSpekleRemovalTechnique() const = 0 ;
- virtual void setSpekleRemovalTechnique(int factor) = 0;
- virtual bool getUsePrefilter() const = 0 ;
- virtual void setUsePrefilter(bool factor) = 0;
- virtual int getBinaryKernelType() const = 0;
- virtual void setBinaryKernelType(int value) = 0;
- virtual int getAgregationWindowSize() const = 0;
- virtual void setAgregationWindowSize(int value) = 0;
-
- CV_EXPORTS static Ptr< cv::stereo::StereoBinaryBM > create(int numDisparities = 0, int blockSize = 9);
- };
-
- class StereoBinarySGBM : public StereoMatcher
- {
- public:
- enum
- {
- MODE_SGBM = 0,
- MODE_HH = 1
- };
- virtual int getPreFilterCap() const = 0;
- virtual void setPreFilterCap(int preFilterCap) = 0;
- virtual int getUniquenessRatio() const = 0;
- virtual void setUniquenessRatio(int uniquenessRatio) = 0;
- virtual int getP1() const = 0;
- virtual void setP1(int P1) = 0;
- virtual int getP2() const = 0;
- virtual void setP2(int P2) = 0;
- virtual int getMode() const = 0;
- virtual void setMode(int mode) = 0;
- virtual int getSpekleRemovalTechnique() const = 0 ;
- virtual void setSpekleRemovalTechnique(int factor) = 0;
- virtual int getBinaryKernelType() const = 0;
- virtual void setBinaryKernelType(int value) = 0;
- virtual int getSubPixelInterpolationMethod() const = 0;
- virtual void setSubPixelInterpolationMethod(int value) = 0;
-
- CV_EXPORTS static Ptr<cv::stereo::StereoBinarySGBM> create(int minDisparity, int numDisparities, int blockSize,
- int P1 = 100, int P2 = 1000, int disp12MaxDiff = 1,
- int preFilterCap = 0, int uniquenessRatio = 5,
- int speckleWindowSize = 400, int speckleRange = 200,
- int mode = StereoBinarySGBM::MODE_SGBM);
- };
-
- }
- }
- #endif
|