mMinDisparity >>= mDownScale;
mNumDisparities >>= mDownScale;
}
- mDfsOcv = cv::StereoSGBM::create(mMinDisparity, mNumDisparities, mBlockSize);
+ mDfsOcv = cv::StereoSGBM::create(mMinDisparity,
+ mNumDisparities,
+ mBlockSize,
+ 0, // P1
+ 0, // P2
+ 2, // disp12MaxDiff
+ 0, // preFilterCap
+ 10, // uniquenessRatio
+ 50, // speckleWindowSize
+ 2); // speckleRange
this->SetParameters();
mDfsOcvExtra = cv::ximgproc::createRightMatcher(mDfsOcv);
mDfsPostOcv->setLRCthresh(24.0);
- mDfsPostOcv->setSigmaColor(10.0);
+ mDfsPostOcv->setSigmaColor(1.5);
mDfsPostOcv->setLambda(8000);
+ mDfsPostOcv->setDepthDiscontinuityRadius((int)ceil(0.5*5));
if (!mDfsOcvExtra) {
mThreadPool.reserve(MAX_THREADS_NUM - 1);