Create cv::StereoSGBM instance with initial values and change parameters values for...
authorTae-Young Chung <ty83.chung@samsung.com>
Fri, 3 Dec 2021 05:04:45 +0000 (14:04 +0900)
committer엘무럿/선행S/W Lab(생활가전)/Principal Engineer/삼성전자 <e.talipov@samsung.com>
Tue, 14 Dec 2021 02:21:04 +0000 (11:21 +0900)
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
src/dfs_opencv.cpp

index 19e978f..92f628f 100644 (file)
@@ -183,7 +183,16 @@ namespace DfsAdaptationImpl
                        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();
 
@@ -199,8 +208,9 @@ namespace DfsAdaptationImpl
                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);