summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--compat/camera-names.cpp4
-rw-r--r--tracker-neuralnet/ftnoir_tracker_neuralnet.cpp18
-rw-r--r--video-opencv/impl-camera.cpp8
3 files changed, 23 insertions, 7 deletions
diff --git a/compat/camera-names.cpp b/compat/camera-names.cpp
index b9511037..5813990d 100644
--- a/compat/camera-names.cpp
+++ b/compat/camera-names.cpp
@@ -103,8 +103,8 @@ std::vector<std::tuple<QString, int>> get_camera_names()
{
QString str = prop_to_qstring(pPropBag, L"FriendlyName");
QString path = device_path_from_qstring(prop_to_qstring(pPropBag, L"DevicePath"));
- if (!path.isNull())
- str += QStringLiteral(" [%1]").arg(path);
+ //if (!path.isNull())
+ // str += QStringLiteral(" [%1]").arg(path);
ret.push_back({ str, (int)ret.size() });
}
pPropBag->Release();
diff --git a/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp b/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp
index 59e17063..ebd626b0 100644
--- a/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp
+++ b/tracker-neuralnet/ftnoir_tracker_neuralnet.cpp
@@ -13,6 +13,7 @@
#include "compat/math-imports.hpp"
#include "compat/timer.hpp"
#include "compat/check-visible.hpp"
+#include "compat/camera-names.hpp"
#include "cv/init.hpp"
#include <omp.h>
@@ -83,7 +84,8 @@ struct OnScopeExit
CamIntrinsics make_intrinsics(const cv::Mat& img, const Settings& settings)
{
const int w = img.cols, h = img.rows;
- const double diag_fov = settings.fov * M_PI / 180.;
+ //const double diag_fov = settings.fov * M_PI / 180.;
+ const double diag_fov = 60 * M_PI / 180.; (void)settings;
const double fov_w = 2.*atan(tan(diag_fov/2.)/sqrt(1. + h/(double)w * h/(double)w));
const double fov_h = 2.*atan(tan(diag_fov/2.)/sqrt(1. + w/(double)h * w/(double)h));
const double focal_length_w = 1. / tan(.5 * fov_w);
@@ -446,6 +448,9 @@ NeuralNetTracker::~NeuralNetTracker()
module_status NeuralNetTracker::start_tracker(QFrame* videoframe)
{
+ if (camera_name_to_index("TrackHat sensor") == -1)
+ return error("Can't open camera 'TrackHat sensor'");
+
videoframe->show();
video_widget_ = std::make_unique<cv_video_widget>(videoframe);
layout_ = std::make_unique<QHBoxLayout>();
@@ -501,13 +506,15 @@ bool NeuralNetTracker::load_and_initialize_model()
bool NeuralNetTracker::open_camera()
{
- int rint = std::clamp(*settings_.resolution, 0, (int)std::size(resolution_choices)-1);
+ //int rint = std::clamp(*settings_.resolution, 0, (int)std::size(resolution_choices)-1);
+ int rint = 1;
resolution_tuple res = resolution_choices[rint];
- int fps = enum_to_fps(settings_.force_fps);
+ //int fps = enum_to_fps(settings_.force_fps);
+ int fps = 60;
QMutexLocker l(&camera_mtx_);
- camera_ = video::make_camera(settings_.camera_name);
+ camera_ = video::make_camera("TrackHat sensor");
if (!camera_)
return false;
@@ -522,7 +529,8 @@ bool NeuralNetTracker::open_camera()
if (fps)
args.fps = fps;
- args.use_mjpeg = settings_.use_mjpeg;
+ //args.use_mjpeg = settings_.use_mjpeg;
+ args.use_mjpeg = true;
if (!camera_->start(args))
{
diff --git a/video-opencv/impl-camera.cpp b/video-opencv/impl-camera.cpp
index 662eceb2..543f9dff 100644
--- a/video-opencv/impl-camera.cpp
+++ b/video-opencv/impl-camera.cpp
@@ -1,6 +1,7 @@
#include "impl.hpp"
#include "compat/sleep.hpp"
#include "video-property-page.hpp"
+#include <QDebug>
namespace opencv_camera_impl {
@@ -46,6 +47,13 @@ bool cam::start(info& args)
if (args.use_mjpeg)
cap->set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));
+#if 1
+ cap->set(cv::CAP_PROP_AUTO_EXPOSURE, 0);
+ //cap->set(cv::CAP_PROP_SHARPNESS, 0);
+ if (auto exp = cap->get(cv::CAP_PROP_EXPOSURE); exp > -4 || exp < -5)
+ cap->set(cv::CAP_PROP_EXPOSURE, -5);
+#endif
+
if (!cap->isOpened())
goto fail;