Convert disparity to CV_8UC1 and scale down to 1/16
authorTae-Young Chung <ty83.chung@samsung.com>
Wed, 20 Oct 2021 04:22:44 +0000 (13:22 +0900)
committer엘무럿/선행S/W Lab(생활가전)/Principal Engineer/삼성전자 <e.talipov@samsung.com>
Tue, 14 Dec 2021 02:21:04 +0000 (11:21 +0900)
SGBM outs disparity map as CV_16SC type after scaling up 16 times.
To dump and check disparity results, convert them CV_8UC1 and
scale down to 1/16.

Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
src/dfs_opencv.cpp

index 9fb7397..4a8b332 100644 (file)
@@ -225,11 +225,12 @@ namespace DfsAdaptationImpl
                        throw std::runtime_error("base and extra should be the type");
                }
 
-               cv::Mat rBaseMat, rExtraMat;
+               cv::Mat rBaseMat, rExtraMat, dispMat;
                cv::remap(baseMat, rBaseMat, mBaseReMap[0], mBaseReMap[1], cv::INTER_LINEAR);
                cv::remap(extraMat, rExtraMat, mExtraReMap[0], mExtraReMap[1], cv::INTER_LINEAR);
 
-               mDfsOcv->compute(rBaseMat, rExtraMat, mDispMat);
+               mDfsOcv->compute(rBaseMat, rExtraMat, dispMat);
+               dispMat.convertTo(mDispMat, CV_8UC1, 1.0/16.0);
 
                mDepthData.data = mDispMat.data;
                mDepthData.type = DFS_DATA_TYPE_UINT8;