From a1973c5604cb1d8e2b58ec1dbcd26ac9b3bfa75e Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 27 Jan 2023 10:29:03 +0100 Subject: tracker/nn: set exposure while tracking --- video-opencv/impl-camera.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'video-opencv/impl-camera.cpp') diff --git a/video-opencv/impl-camera.cpp b/video-opencv/impl-camera.cpp index 9e749d75..60a713d1 100644 --- a/video-opencv/impl-camera.cpp +++ b/video-opencv/impl-camera.cpp @@ -31,6 +31,19 @@ bool cam::is_open() return !!cap; } +void cam::set_exposure() +{ + auto e = *s.exposure_preset; + if (e != exposure) + switch (e) + { + case exposure_preset::near: cap->set(cv::CAP_PROP_EXPOSURE, -5); qDebug() << "near"; break; + case exposure_preset::far: cap->set(cv::CAP_PROP_EXPOSURE, -4); qDebug() << "far"; break; + default: break; + } + exposure = e; +} + bool cam::start(info& args) { stop(); @@ -51,13 +64,8 @@ bool cam::start(info& args) { cap->set(cv::CAP_PROP_AUTO_EXPOSURE, 0); //cap->set(cv::CAP_PROP_SHARPNESS, 0); - switch (s.exposure_preset) - { - case exposure_preset::near: cap->set(cv::CAP_PROP_EXPOSURE, -5); break; - case exposure_preset::far: cap->set(cv::CAP_PROP_EXPOSURE, -4); break; - default: break; - } } + set_exposure(); if (!cap->isOpened()) goto fail; @@ -77,6 +85,8 @@ bool cam::get_frame_() if (!is_open()) return false; + set_exposure(); + for (unsigned i = 0; i < 10; i++) { if (cap->read(mat)) -- cgit v1.2.3