diff --git a/.gitignore b/.gitignore index 447ddb5..2f67ce1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,8 @@ _output/ /*ERROR* /*FATAL* +/plugins/ + # ros /wrappers/ros/build diff --git a/samples/tutorials/CMakeLists.txt b/samples/tutorials/CMakeLists.txt index 37766aa..15a42f7 100644 --- a/samples/tutorials/CMakeLists.txt +++ b/samples/tutorials/CMakeLists.txt @@ -37,6 +37,7 @@ endmacro() if(WITH_API) make_executable(get_device_info SRCS data/get_device_info.cc) +make_executable(get_with_plugin SRCS data/get_with_plugin.cc) make_executable(ctrl_infrared SRCS control/infrared.cc WITH_OPENCV) diff --git a/samples/tutorials/data/get_with_plugin.cc b/samples/tutorials/data/get_with_plugin.cc new file mode 100644 index 0000000..70dbe58 --- /dev/null +++ b/samples/tutorials/data/get_with_plugin.cc @@ -0,0 +1,44 @@ +#include + +#include + +#include "mynteye/api.h" + +MYNTEYE_USE_NAMESPACE + +int main(int argc, char *argv[]) { + auto &&api = API::Create(argc, argv); + + api->EnablePlugin("plugins/linux-x86_64/libplugin_g_cuda9.1_opencv3.4.0.so"); + + api->EnableStreamData(Stream::DISPARITY_NORMALIZED); + + api->Start(Source::VIDEO_STREAMING); + + cv::namedWindow("frame"); + cv::namedWindow("disparity"); + + while (true) { + api->WaitForStreams(); + + auto &&left_data = api->GetStreamData(Stream::LEFT); + auto &&right_data = api->GetStreamData(Stream::RIGHT); + + cv::Mat img; + cv::hconcat(left_data.frame, right_data.frame, img); + cv::imshow("frame", img); + + auto &&disp_data = api->GetStreamData(Stream::DISPARITY_NORMALIZED); + if (!disp_data.frame.empty()) { + cv::imshow("disparity", disp_data.frame); + } + + char key = static_cast(cv::waitKey(1)); + if (key == 27 || key == 'q' || key == 'Q') { // ESC/Q + break; + } + } + + api->Stop(Source::ALL); + return 0; +} diff --git a/src/api/api.cc b/src/api/api.cc index e7b8f42..ef46745 100644 --- a/src/api/api.cc +++ b/src/api/api.cc @@ -195,7 +195,7 @@ std::vector API::GetMotionDatas() { } void API::EnablePlugin(const std::string &path) { - DL dl; + static DL dl; CHECK(dl.Open(path.c_str())) << "Open plugin failed: " << path; plugin_version_code_t *plugin_version_code =