diff --git a/samples/tutorials/CMakeLists.txt b/samples/tutorials/CMakeLists.txt index ac47fa5..f11c497 100644 --- a/samples/tutorials/CMakeLists.txt +++ b/samples/tutorials/CMakeLists.txt @@ -99,6 +99,8 @@ make_executable2(get_stereo SRCS data/get_stereo.cc WITH_OPENCV) make_executable2(get_stereo_rectified SRCS data/get_stereo_rectified.cc WITH_OPENCV) make_executable2(get_disparity SRCS data/get_disparity.cc WITH_OPENCV) make_executable2(get_depth SRCS data/get_depth.cc WITH_OPENCV) + +make_executable2(get_data_without_select SRCS data/get_data_without_select.cc WITH_OPENCV) if(PCL_FOUND) make_executable2(get_points SRCS data/get_points.cc util/pc_viewer.cc diff --git a/samples/tutorials/data/get_data_without_select.cc b/samples/tutorials/data/get_data_without_select.cc new file mode 100644 index 0000000..01e8a65 --- /dev/null +++ b/samples/tutorials/data/get_data_without_select.cc @@ -0,0 +1,74 @@ +// Copyright 2018 Slightech Co., Ltd. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include +#include +#include + +#include "mynteye/api/api.h" + +MYNTEYE_USE_NAMESPACE + +int main(int argc, char *argv[]) { + auto &&api = API::Create(argc, argv); + if (!api) return 1; + + auto request = api->GetStreamRequest(); + +// struct StreamRequest { +// /** Stream width in pixels */ +// std::uint16_t width; +// /** Stream height in pixels */ +// std::uint16_t height; +// /** Stream pixel format */ +// Format format; +// /** Stream frames per second */ +// std::uint16_t fps; +// } + + request.fps = 10; + api->ConfigStreamRequest(request); + + api->EnableStreamData(Stream::DEPTH); + + api->Start(Source::VIDEO_STREAMING); + + cv::namedWindow("frame"); + cv::namedWindow("depth"); + while (true) { + api->WaitForStreams(); + + auto &&left_data = api->GetStreamData(Stream::LEFT); + auto &&right_data = api->GetStreamData(Stream::RIGHT); + + if (!left_data.frame.empty() && !right_data.frame.empty()) { + cv::Mat img; + cv::hconcat(left_data.frame, right_data.frame, img); + 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 + } + + char key = static_cast(cv::waitKey(1)); + if (key == 27 || key == 'q' || key == 'Q') { // ESC/Q + break; + } + } + + api->Stop(Source::VIDEO_STREAMING); + return 0; +} diff --git a/samples/tutorials/data/get_depth.cc b/samples/tutorials/data/get_depth.cc index e2e05ad..7b57f29 100644 --- a/samples/tutorials/data/get_depth.cc +++ b/samples/tutorials/data/get_depth.cc @@ -28,7 +28,6 @@ int main(int argc, char *argv[]) { if (!ok) return 1; api->ConfigStreamRequest(request); - api->SetDisparityComputingMethodType(DisparityComputingMethod::BM); api->EnableStreamData(Stream::DEPTH); api->EnableStreamData(Stream::DISPARITY_NORMALIZED);