From 0a065966caf76167ac1062be09703e9e8d40712a Mon Sep 17 00:00:00 2001 From: Tae-Young Chung Date: Thu, 22 Sep 2022 13:20:23 +0900 Subject: [PATCH] Implement getLeftData() and getRightData() [Version] 1.0.10-0 [Issue type] update Change-Id: Ifdf656a3ce87c195a34984109a63b5afbdec85a4 Signed-off-by: Tae-Young Chung --- packaging/dfs-opencv.spec | 4 ++-- src/dfs_opencv.cpp | 52 +++++++++++++++++++++++++++++++++++++---------- src/dfs_opencv_private.h | 6 ++++++ 3 files changed, 49 insertions(+), 13 deletions(-) diff --git a/packaging/dfs-opencv.spec b/packaging/dfs-opencv.spec index 00fd471..4bf2a32 100644 --- a/packaging/dfs-opencv.spec +++ b/packaging/dfs-opencv.spec @@ -1,7 +1,7 @@ Name: dfs-opencv Summary: OpenCV based Depth-from-Stereo implementation -Version: 1.0.9 -Release: 1 +Version: 1.0.10 +Release: 0 Group: Multimedia/Libraries License: Apache-2.0 Source0: %{name}-%{version}.tar.gz diff --git a/src/dfs_opencv.cpp b/src/dfs_opencv.cpp index dc77b84..046283c 100644 --- a/src/dfs_opencv.cpp +++ b/src/dfs_opencv.cpp @@ -374,24 +374,24 @@ namespace DfsAdaptationImpl throw std::runtime_error("base and extra should be the type"); } - cv::Mat rBaseMat, rExtraMat, dispMat, dispFiltMat; + cv::Mat dispMat, dispFiltMat; // with remap if (mIsStereoCalibrated) { - cv::remap(baseMat, rBaseMat, mBaseReMap[0], mBaseReMap[1], cv::INTER_LINEAR); - cv::remap(extraMat, rExtraMat, mExtraReMap[0], mExtraReMap[1], cv::INTER_LINEAR); + cv::remap(baseMat, mBaseMat, mBaseReMap[0], mBaseReMap[1], cv::INTER_LINEAR); + cv::remap(extraMat, mExtraMat, mExtraReMap[0], mExtraReMap[1], cv::INTER_LINEAR); } else { - rBaseMat = baseMat; - rExtraMat = extraMat; + mBaseMat = baseMat; + mExtraMat = extraMat; } cv::Mat srcBaseMat, srcExtraMat; - cv::resize(rBaseMat, srcBaseMat, + cv::resize(mBaseMat, srcBaseMat, cv::Size(), 1.0/static_cast((1<((1<((1<((1<(1<filter(dispMat, rBaseMat, dispFiltMat, + mDfsPostOcv->filter(dispMat, mBaseMat, dispFiltMat, dispMatExtra, - cv::Rect(0,0,rBaseMat.cols, rBaseMat.rows), - rExtraMat); + cv::Rect(0, 0, mBaseMat.cols, mBaseMat.rows), + mExtraMat); } else { LOGI("left : %s", results[0].get() ? "true" : "false"); if (mDownScale) { @@ -440,7 +440,7 @@ namespace DfsAdaptationImpl static_cast(1<(1<filter(dispMat, rBaseMat, dispFiltMat); + mDfsPostOcv->filter(dispMat, mBaseMat, dispFiltMat); } dispFiltMat.convertTo(mDispMat, CV_32F, mDispShiftInv); } else { @@ -471,6 +471,18 @@ namespace DfsAdaptationImpl mDepthData.height = mDepthMat.rows; mDepthData.stride = mDepthMat.elemSize() * mDepthMat.cols; + mBaseData.data = mBaseMat.ptr(); + mBaseData.type = mBaseMat.channels() > 1 ? DFS_DATA_TYPE_UINT8C3 : DFS_DATA_TYPE_UINT8C1; + mBaseData.width = mBaseMat.cols; + mBaseData.height = mBaseMat.rows; + mBaseData.stride = mBaseMat.elemSize() * mBaseMat.cols; + + mExtraData.data = mExtraMat.ptr(); + mExtraData.type = mExtraMat.channels() > 1 ? DFS_DATA_TYPE_UINT8C3 : DFS_DATA_TYPE_UINT8C1; + mExtraData.width = mExtraMat.cols; + mExtraData.height = mExtraMat.rows; + mExtraData.stride = mExtraMat.elemSize() * mExtraMat.cols; + LOGI("LEAVE"); } @@ -483,6 +495,24 @@ namespace DfsAdaptationImpl LOGI("LEAVE"); } + DfsData& DfsOCV::getLeftData() + { + LOGI("ENTER"); + + return mBaseData; + + LOGI("LEAVE"); + } + + DfsData& DfsOCV::getRightData() + { + LOGI("ENTER"); + + return mExtraData; + + LOGI("LEAVE"); + } + extern "C" { class IDfsAdaptation *AdaptorInit(void) diff --git a/src/dfs_opencv_private.h b/src/dfs_opencv_private.h index 4e8ebf3..34e1b28 100644 --- a/src/dfs_opencv_private.h +++ b/src/dfs_opencv_private.h @@ -93,11 +93,15 @@ namespace DfsAdaptationImpl static constexpr float mDispShiftInv = 1.0f/16.f; + cv::Mat mBaseMat; + cv::Mat mExtraMat; cv::Mat mDispMat; cv::Mat mDepthMat; cv::Mat mDisp2DepthMat; cv::Mat mDispOffsetMat; DfsOutputData mDepthData; + DfsData mBaseData; + DfsData mExtraData; StereoParam mStereoParam; bool mIsStereoCalibrated; @@ -137,6 +141,8 @@ namespace DfsAdaptationImpl void run(DfsInputData& input) override; DfsOutputData& getOutputData() override; + DfsData& getLeftData() override; + DfsData& getRightData() override; }; } -- 2.7.4