From 90138a999b4c95afeb9a49d355b0234b6145e221 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 19 Dec 2015 20:43:24 +0100 Subject: tracker/pt: don't allocate temporary frame --- tracker-pt/camera.cpp | 13 ++++--------- tracker-pt/ftnoir_tracker_pt.cpp | 14 +++++++------- tracker-pt/ftnoir_tracker_pt.h | 1 + 3 files changed, 12 insertions(+), 16 deletions(-) (limited to 'tracker-pt') diff --git a/tracker-pt/camera.cpp b/tracker-pt/camera.cpp index ff721557..600ab26a 100644 --- a/tracker-pt/camera.cpp +++ b/tracker-pt/camera.cpp @@ -110,19 +110,14 @@ bool CVCamera::_get_frame(cv::Mat* frame) { if (cap && cap->isOpened()) { - cv::Mat img; - for (int i = 0; i < 100 && !cap->read(img); i++) + for (int i = 0; i < 100 && !cap->read(*frame); i++) ;; - if (img.empty()) + if (frame->empty()) return false; - if (frame->rows != img.rows || frame->cols != img.cols) - *frame = cv::Mat(); - - *frame = img; - cam_info.res_x = img.cols; - cam_info.res_y = img.rows; + cam_info.res_x = frame->cols; + cam_info.res_y = frame->rows; return true; } return false; diff --git a/tracker-pt/ftnoir_tracker_pt.cpp b/tracker-pt/ftnoir_tracker_pt.cpp index 80227a39..9a4fa037 100644 --- a/tracker-pt/ftnoir_tracker_pt.cpp +++ b/tracker-pt/ftnoir_tracker_pt.cpp @@ -14,6 +14,7 @@ #include #include "opentrack-compat/camera-names.hpp" #include "opentrack-compat/sleep.hpp" +#include //#define PT_PERF_LOG //log performance @@ -78,7 +79,7 @@ void Tracker_PT::run() #endif apply_settings(); - cv::Mat frame; + cv::Mat frame_; while((commands & ABORT) == 0) { @@ -89,9 +90,12 @@ void Tracker_PT::run() { QMutexLocker l(&camera_mtx); new_frame = camera.get_frame(dt, &frame); + if (frame.rows != frame_.rows || frame.cols != frame_.cols) + frame_ = cv::Mat(frame.rows, frame.cols, CV_8UC3); + frame.copyTo(frame_); } - if (new_frame && !frame.empty()) + if (new_frame && !frame_.empty()) { std::vector points = point_extractor.extract_points(frame); @@ -142,11 +146,6 @@ void Tracker_PT::run() video_widget->update_image(frame); } -#ifdef PT_PERF_LOG - log_stream<<"dt: "<