fix: use normalized and real depth in depth sample.
This commit is contained in:
parent
d1ebc6cad5
commit
a9f0e49a5a
|
@ -204,6 +204,15 @@ class MYNTEYE_API API {
|
|||
* Get the intrinsics base of stream.
|
||||
*/
|
||||
std::shared_ptr<IntrinsicsBase> GetIntrinsicsBase(const Stream &stream) const;
|
||||
/**
|
||||
* Get the intrinsics of stream.
|
||||
*/
|
||||
template <typename T>
|
||||
T GetDisparityParams() const;
|
||||
/**
|
||||
* Get the intrinsics base of stream.
|
||||
*/
|
||||
std::shared_ptr<DisparityParamsBase> GetDisparityParamsBase() const;
|
||||
/**
|
||||
* Get the extrinsics from one stream to another.
|
||||
*/
|
||||
|
|
|
@ -626,6 +626,10 @@ struct MYNTEYE_API Extrinsics {
|
|||
MYNTEYE_API
|
||||
std::ostream &operator<<(std::ostream &os, const Extrinsics &ex);
|
||||
|
||||
|
||||
/**
|
||||
* @defgroup disparity params
|
||||
*/
|
||||
/**
|
||||
* @ingroup disparity
|
||||
* Camera disparity computing method type.
|
||||
|
@ -639,6 +643,33 @@ enum class DisparityComputingMethod : std::uint8_t {
|
|||
UNKNOW
|
||||
};
|
||||
|
||||
struct MYNTEYE_API DisparityParamsBase {
|
||||
DisparityParamsBase() {
|
||||
disparity_model_ = DisparityComputingMethod::UNKNOW;
|
||||
}
|
||||
virtual ~DisparityParamsBase() {}
|
||||
virtual void ResizeIntrinsics() {}
|
||||
|
||||
/** The calibration model */
|
||||
DisparityComputingMethod disparity_model() const {
|
||||
return disparity_model_;
|
||||
}
|
||||
protected:
|
||||
DisparityComputingMethod disparity_model_;
|
||||
};
|
||||
|
||||
struct MYNTEYE_API DisparityParamsSGBM : public DisparityParamsBase {
|
||||
DisparityParamsSGBM() {
|
||||
disparity_model_ = DisparityComputingMethod::SGBM;
|
||||
}
|
||||
};
|
||||
|
||||
struct MYNTEYE_API DisparityParamsBM : public DisparityParamsBase {
|
||||
DisparityParamsBM() {
|
||||
disparity_model_ = DisparityComputingMethod::BM;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @defgroup datatypes Datatypes
|
||||
|
|
|
@ -30,11 +30,13 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
api->SetDisparityComputingMethodType(DisparityComputingMethod::BM);
|
||||
api->EnableStreamData(Stream::DEPTH);
|
||||
api->EnableStreamData(Stream::DISPARITY_NORMALIZED);
|
||||
|
||||
api->Start(Source::VIDEO_STREAMING);
|
||||
|
||||
cv::namedWindow("frame");
|
||||
cv::namedWindow("depth");
|
||||
cv::namedWindow("depth_real");
|
||||
cv::namedWindow("depth_normalized");
|
||||
while (true) {
|
||||
api->WaitForStreams();
|
||||
|
||||
|
@ -47,9 +49,16 @@ int main(int argc, char *argv[]) {
|
|||
cv::imshow("frame", img);
|
||||
}
|
||||
|
||||
// this code is for real depth data
|
||||
auto &&depth_data = api->GetStreamData(Stream::DEPTH);
|
||||
if (!depth_data.frame.empty()) {
|
||||
cv::imshow("depth", depth_data.frame); // CV_16UC1
|
||||
cv::imshow("depth_real", depth_data.frame); // CV_16UC1
|
||||
}
|
||||
|
||||
// this code is for normalized depth data
|
||||
auto &&disp_norm_data = api->GetStreamData(Stream::DISPARITY_NORMALIZED);
|
||||
if (!disp_norm_data.frame.empty()) {
|
||||
cv::imshow("depth_normalized", disp_norm_data.frame); // CV_8UC1
|
||||
}
|
||||
|
||||
char key = static_cast<char>(cv::waitKey(1));
|
||||
|
|
|
@ -61,6 +61,28 @@ std::shared_ptr<Extrinsics> getDefaultExtrinsics() {
|
|||
return res;
|
||||
}
|
||||
|
||||
// sgbm_matcher = cv::StereoSGBM::create(0, 16, 3);
|
||||
// sgbm_matcher->setPreFilterCap(63);
|
||||
// sgbm_matcher->setBlockSize(sgbmWinSize);
|
||||
// sgbm_matcher->setP1(8 * sgbmWinSize * sgbmWinSize);
|
||||
// sgbm_matcher->setP2(32 * sgbmWinSize * sgbmWinSize);
|
||||
// sgbm_matcher->setMinDisparity(0);
|
||||
// sgbm_matcher->setNumDisparities(numberOfDisparities);
|
||||
// sgbm_matcher->setUniquenessRatio(10);
|
||||
// sgbm_matcher->setSpeckleWindowSize(100);
|
||||
// sgbm_matcher->setSpeckleRange(32);
|
||||
// sgbm_matcher->setDisp12MaxDiff(1);
|
||||
|
||||
// bm_matcher = cv::StereoBM::create(0, 3);
|
||||
// bm_matcher->setPreFilterSize(9);
|
||||
// bm_matcher->setPreFilterCap(31);
|
||||
// bm_matcher->setBlockSize(15);
|
||||
// bm_matcher->setMinDisparity(0);
|
||||
// bm_matcher->setNumDisparities(64);
|
||||
// bm_matcher->setUniquenessRatio(60);
|
||||
// bm_matcher->setTextureThreshold(10);
|
||||
// bm_matcher->setSpeckleWindowSize(100);
|
||||
// bm_matcher->setSpeckleRange(4);
|
||||
|
||||
|
||||
MYNTEYE_END_NAMESPACE
|
||||
|
|
Loading…
Reference in New Issue
Block a user