return results;
}
- void DfsOCV::Run(DfsData& base, DfsData& extra)
+ void DfsOCV::Run(DfsInputData& data)
{
LOGI("ENTER");
- if (!base.data) {
+ if (!data.data) {
throw std::runtime_error("invalid data pointer");
}
- int baseCvType = 1;
- int extraCvType = -1;
+ int dataCvType = 1;
cv::Mat baseMat, extraMat;
- if (!extra.data) {
+ if (data.inputFormat == DFS_DATA_INPUT_FORMAT_COUPLED_SBS) {
LOGI("side-by-side");
- if (cv::Size(base.width >> 1, base.height) != mImageSize) {
+ if (cv::Size(data.width >> 1, data.height) != mImageSize) {
throw std::runtime_error("invalid size");
}
- baseCvType = ConvertDfsDataTypeToCV(base.type);
- if (baseCvType < 0) {
+ dataCvType = ConvertDfsDataTypeToCV(data.type);
+ if (dataCvType < 0) {
throw std::runtime_error("invalid data type");
}
- cv::Mat mat(cv::Size(base.width, base.height), baseCvType, base.data);
- LOGI("%zd x %zd", base.width, base.height);
+ cv::Mat mat(cv::Size(data.width, data.height), dataCvType, data.data);
+ LOGI("%zd x %zd", data.width, data.height);
baseMat = mat(cv::Rect(0, 0,
mImageSize.width,
mImageSize.height)).clone();
mImageSize.width,
mImageSize.height)).clone();
} else {
- if (cv::Size(base.width, base.height) != mImageSize ||
- cv::Size(extra.width, extra.height) != mImageSize) {
+ if (cv::Size(data.width, data.height) != mImageSize ||
+ cv::Size(data.width, data.height) != mImageSize) {
+ LOGE("%zd x %zd but image size is %d x %d",
+ data.width, data.height, mImageSize.width, mImageSize.height);
throw std::runtime_error("invalid size");
}
- baseCvType = ConvertDfsDataTypeToCV(base.type);
- extraCvType = ConvertDfsDataTypeToCV(extra.type);
- if (baseCvType < 0 || extraCvType < 0) {
- LOGE("baseCvType: %d, extraCvType:%d", baseCvType, extraCvType);
+ dataCvType = ConvertDfsDataTypeToCV(data.type);
+ if (dataCvType < 0) {
+ LOGE("dataCvType: %d", dataCvType);
throw std::runtime_error("invalid data type");
}
- baseMat = cv::Mat(cv::Size(base.width, base.height),
- baseCvType,
- base.data);;
- extraMat = cv::Mat(cv::Size(extra.width,
- extra.height),
- extraCvType,
- extra.data);
+ baseMat = cv::Mat(cv::Size(data.width, data.height),
+ dataCvType,
+ data.data);;
+ extraMat = cv::Mat(cv::Size(data.width, data.height),
+ dataCvType,
+ data.extraData);
}
if (baseMat.size() != extraMat.size()) {
mDepthData.height = mDepthMat.rows;
mDepthData.stride = mDepthMat.elemSize() * mDepthMat.cols;
- mDepthData.pointCloudData = nullptr;
- mDepthData.pointCloudSize = 0;
-
LOGI("LEAVE");
}
- DfsData& DfsOCV::GetDepthData()
+ DfsOutputData& DfsOCV::GetDepthData()
{
LOGI("ENTER");
cv::Mat mDepthMat;
cv::Mat mDisp2DepthMat;
cv::Mat mDispOffsetMat;
- DfsData mDepthData;
+ DfsOutputData mDepthData;
StereoParam mStereoParam;
bool mIsStereoCalibrated;
void Initialize(DfsParameter& param, size_t width, size_t height,
size_t minDisp, size_t maxDisp, std::string stereoConfigPath) override;
- void Run(DfsData& base, DfsData& extra) override;
+ void Run(DfsInputData& data) override;
- DfsData& GetDepthData() override;
+ DfsOutputData& GetDepthData() override;
};
}