summaryrefslogtreecommitdiffhomepage
path: root/ftnoir_tracker_pt/camera.h
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-10-30 07:37:41 +0100
committerStanislaw Halik <sthalik@misaki.pl>2015-10-30 08:39:32 +0100
commitaa066bdd4622d4f6824fee864f6be6806813f04d (patch)
tree3df328b8b364cba2373a85827191b259bd78d546 /ftnoir_tracker_pt/camera.h
parentd6a54431d178632a2bf466c9904f74abd143afe6 (diff)
move to subdirectory-based build system
Closes #224
Diffstat (limited to 'ftnoir_tracker_pt/camera.h')
-rw-r--r--ftnoir_tracker_pt/camera.h95
1 files changed, 0 insertions, 95 deletions
diff --git a/ftnoir_tracker_pt/camera.h b/ftnoir_tracker_pt/camera.h
deleted file mode 100644
index e73d9dff..00000000
--- a/ftnoir_tracker_pt/camera.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (c) 2012 Patrick Ruoff
- *
- * 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 <opencv2/core/core.hpp>
-#include <memory>
-#include <opencv2/highgui.hpp>
-#include <string>
-
-struct CamInfo
-{
- CamInfo() : res_x(0), res_y(0), fps(0) {}
-
- int res_x;
- int res_y;
- int fps;
-};
-
-// ----------------------------------------------------------------------------
-// Base class for cameras, calculates the frame rate
-class Camera
-{
-public:
- Camera() : dt_valid(0), dt_mean(0), desired_index(0), active_index(-1) {}
- virtual ~Camera() = 0;
-
- // start/stop capturing
- virtual void start() = 0;
- virtual void stop() = 0;
- void restart() { stop(); start(); }
-
- // calls corresponding template methods and reinitializes frame rate calculation
- void set_device_index(int index);
- void set_fps(int fps);
- void set_res(int x_res, int y_res);
-
- // gets a frame from the camera, dt: time since last call in seconds
- bool get_frame(float dt, cv::Mat* frame);
-
- // WARNING: returned references are valid as long as object
- bool get_info(CamInfo &ret);
- CamInfo get_desired() const { return cam_desired; }
-
-protected:
- // get a frame from the camera
- virtual bool _get_frame(cv::Mat* frame) = 0;
-
- // update the camera using cam_desired, write res and f to cam_info if successful
- virtual void _set_device_index() = 0;
- virtual void _set_fps() = 0;
- virtual void _set_res() = 0;
-private:
- float dt_valid;
- float dt_mean;
-protected:
- int desired_index;
- int active_index;
- CamInfo cam_info;
- CamInfo cam_desired;
-};
-inline Camera::~Camera() {}
-
-// ----------------------------------------------------------------------------
-// camera based on OpenCV's videoCapture
-class CVCamera : public Camera
-{
-public:
- CVCamera() : cap(NULL) {}
- ~CVCamera() { stop(); }
-
- void start() override;
- void stop() override;
-
- operator cv::VideoCapture*() { return cap; }
-
-protected:
- bool _get_frame(cv::Mat* frame) override;
- void _set_fps() override;
- void _set_res() override;
- void _set_device_index() override;
-private:
- cv::VideoCapture* cap;
-};
-
-enum RotationType
-{
- CLOCKWISE = 0,
- ZERO = 1,
- COUNTER_CLOCKWISE = 2
-};