From f20687d2d5f9b0542fedf0f45291024846d30d28 Mon Sep 17 00:00:00 2001 From: Stéphane Lenclud Date: Mon, 1 Apr 2019 21:10:53 +0200 Subject: Easy Tracker: Renaming some files --- tracker-easy/tracker-easy.h | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 tracker-easy/tracker-easy.h (limited to 'tracker-easy/tracker-easy.h') diff --git a/tracker-easy/tracker-easy.h b/tracker-easy/tracker-easy.h new file mode 100644 index 00000000..fe99ba85 --- /dev/null +++ b/tracker-easy/tracker-easy.h @@ -0,0 +1,92 @@ +/* Copyright (c) 2012 Patrick Ruoff + * Copyright (c) 2014-2016 Stanislaw Halik + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + */ + +#pragma once + +#include "api/plugin-api.hpp" +#include "tracker-easy-api.h" +#include "cv/numeric.hpp" +#include "video/video-widget.hpp" + +#include +#include +#include + +#include + +#include +#include +#include + +namespace pt_impl { + +class EasyTrackerDialog; + +using namespace numeric_types; + +struct EasyTracker : QThread, ITracker +{ + friend class EasyTrackerDialog; + + template using pointer = pt_pointer; + + explicit EasyTracker(pointer const& pt_runtime_traits); + ~EasyTracker() override; + module_status start_tracker(QFrame* parent_window) override; + void data(double* data) override; + bool center() override; + + int get_n_points(); + [[nodiscard]] bool get_cam_info(pt_camera_info& info); + +private: + void run() override; + + bool maybe_reopen_camera(); + void set_fov(int value); + + pointer traits; + + QMutex camera_mtx; + + + pt_settings s; + + std::unique_ptr layout; + std::vector points; + std::vector iImagePoints; + + int preview_width = 320, preview_height = 240; + + pointer point_extractor; + pointer camera; + pointer widget; + pointer frame; + pointer preview_frame; + + std::atomic point_count { 0 }; + std::atomic ever_success = false; + mutable QMutex center_lock, data_lock; + + // Translation solutions + std::vector iTranslations; + // Rotation solutions + std::vector iRotations; + // Angle solutions, pitch, yaw, roll, in this order + std::vector iAngles; + // The index of our best solution in the above arrays + int iBestSolutionIndex = -1; + // Best translation + cv::Vec3d iBestTranslation; + // Best angles + cv::Vec3d iBestAngles; +}; + +} // ns pt_impl + +using Tracker_PT = pt_impl::EasyTracker; -- cgit v1.2.3