Method Create
- Namespace
- OpenCvSharp
- Assembly
- OpenCvSharp.dll
Create(int, int, int, int, int, int, int, int, int, int, StereoSGBMMode)
Creates StereoSGBM object. Using the default parameters, only numDisparities needs
to be set at minimum; every other parameter can be set to a custom value as needed.
public static StereoSGBM Create(int minDisparity, int numDisparities, int blockSize, int p1 = 0, int p2 = 0, int disp12MaxDiff = 0, int preFilterCap = 0, int uniquenessRatio = 0, int speckleWindowSize = 0, int speckleRange = 0, StereoSGBMMode mode = StereoSGBMMode.SGBM)
Parameters
minDisparityintMinimum possible disparity value. Normally, it is zero but sometimes rectification algorithms can shift images, so this parameter needs to be adjusted accordingly.
numDisparitiesintMaximum disparity minus minimum disparity. The value is always greater than zero. In the current implementation, this parameter must be divisible by 16.
blockSizeintMatched block size. It must be an odd number >=1. Normally, it should be somewhere in the 3..11 range.
p1intThe first parameter controlling the disparity smoothness. See
p2.p2intThe second parameter controlling the disparity smoothness. The larger the values are, the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1 between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor pixels. The algorithm requires P2 > P1.
disp12MaxDiffintMaximum allowed difference (in integer pixel units) in the left-right disparity check. Set it to a non-positive value to disable the check.
preFilterCapintTruncation value for the prefiltered image pixels. The algorithm first computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval. The result values are passed to the Birchfield-Tomasi pixel cost function.
uniquenessRatiointMargin in percentage by which the best (minimum) computed cost function value should "win" the second best value to consider the found match correct. Normally, a value within the 5-15 range is good enough.
speckleWindowSizeintMaximum size of smooth disparity regions to consider their noise speckles and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the 50-200 range.
speckleRangeintMaximum disparity variation within each connected component. If you do speckle filtering, set the parameter to a positive value, it will be implicitly multiplied by 16. Normally, 1 or 2 is good enough.
modeStereoSGBMModeSet it to HH to run the full-scale two-pass dynamic programming algorithm. It will consume a large amount of memory for large images. By default, the single-pass 5-direction variant is used.
Returns
- StereoSGBM
A new StereoSGBM instance.