From 8d4efb428dcf166718b791abfcb0b0db690db8db Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Tue, 7 Jan 2020 17:23:22 -0600 Subject: [PATCH] t/psmv: Dump frames to disk for external usage. DO NOT MERGE --- src/xrt/auxiliary/tracking/t_tracker_psmv.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/xrt/auxiliary/tracking/t_tracker_psmv.cpp b/src/xrt/auxiliary/tracking/t_tracker_psmv.cpp index b7437a4d7..002e1921e 100644 --- a/src/xrt/auxiliary/tracking/t_tracker_psmv.cpp +++ b/src/xrt/auxiliary/tracking/t_tracker_psmv.cpp @@ -28,6 +28,7 @@ #include #include +DEBUG_GET_ONCE_BOOL_OPTION(dump, "PSMV_DUMP_FRAMES", false) /*! * Single camera. @@ -87,6 +88,8 @@ struct TrackerPSMV std::unique_ptr filter; xrt_vec3 tracked_object_position; + + cv::Ptr video_writer; }; static void @@ -270,6 +273,16 @@ process(TrackerPSMV &t, struct xrt_frame *xf) cv::Mat l_grey(rows, cols, CV_8UC1, xf->data, stride); cv::Mat r_grey(rows, cols, CV_8UC1, xf->data + cols, stride); + if (t.video_writer) { + if (!t.video_writer->isOpened()) { + t.video_writer->open( + "psmove_%04d.png", + 0 /*cv::VideoWriter::fourcc('M', 'J', 'P', 'G')*/, + 60, cv::Size(l_grey.cols, l_grey.rows)); + } + (*t.video_writer) << l_grey; + } + do_view(t, t.view[0], l_grey, t.debug.rgb[0]); do_view(t, t.view[1], r_grey, t.debug.rgb[1]); @@ -631,6 +644,9 @@ t_psmv_create(struct xrt_frame_context *xfctx, // clang-format on t.sbd = cv::SimpleBlobDetector::create(blob_params); + if (debug_get_bool_option_dump()) { + t.video_writer.reset(new cv::VideoWriter()); + } xrt_frame_context_add(xfctx, &t.node); // Everything is safe, now setup the variable tracking. -- GitLab