6#ifndef OPENEV_CONTAINERS_QUEUE_HPP
7#define OPENEV_CONTAINERS_QUEUE_HPP
11#include <opencv2/core/types.hpp>
15constexpr bool USING_QUEUE_HPP =
true;
23class Queue_ :
public std::queue<Event_<T>> {
25 using ResultType = TimeType;
32 [[nodiscard]]
inline ResultType
duration()
const {
33 return std::queue<ev::Event_<T>>::back().t - std::queue<ev::Event_<T>>::front().t;
40 [[nodiscard]]
inline ResultType
rate()
const {
41 return std::queue<ev::Event_<T>>::size() /
duration();
50 const std::size_t n = std::queue<ev::Event_<T>>::size();
57 const Event_<T> &e = std::queue<ev::Event_<T>>::front();
62 std::queue<ev::Event_<T>>::pop();
65 return {x / n, y / n, t / n, p / n > 0.5};
73 [[nodiscard]]
inline cv::Point_<ResultType>
meanPoint() {
74 const std::size_t n = std::queue<ev::Event_<T>>::size();
79 const Event_<T> &e = std::queue<ev::Event_<T>>::front();
82 std::queue<ev::Event_<T>>::pop();
85 return {x / n, y / n};
94 const std::size_t n = std::queue<ev::Event_<T>>::size();
98 t += std::queue<ev::Event_<T>>::front().t;
99 std::queue<ev::Event_<T>>::pop();
109 [[nodiscard]]
inline ResultType
midTime()
const {
110 return 0.5 * (std::queue<ev::Event_<T>>::front().t + std::queue<ev::Event_<T>>::back().t);
This class extends cv::Point_<T> for event data. For more information, please refer here.
Definition types.hpp:77
PolarityType p
Definition types.hpp:80
TimeType t
Definition types.hpp:79
This class extends std::queue to implement event queues. For more information, please refer here.
Definition queue.hpp:23
ResultType duration() const
Time difference between the last and the first event.
Definition queue.hpp:32
Event_< ResultType > mean()
Compute the mean of the events.
Definition queue.hpp:49
ResultType midTime() const
Calculate the midpoint time between the oldest and the newest event.
Definition queue.hpp:109
ResultType meanTime()
Compute the mean time of the events.
Definition queue.hpp:93
ResultType rate() const
Compute event rate as the ratio between the number of events and the time difference between the last...
Definition queue.hpp:40
cv::Point_< ResultType > meanPoint()
Compute the mean x,y point of the events.
Definition queue.hpp:73
Queue_< float > Queuef
Definition queue.hpp:115
Queuei Queue
Definition queue.hpp:117
Queue_< double > Queued
Definition queue.hpp:116
Queue_< long > Queuel
Definition queue.hpp:114
Queue_< int > Queuei
Definition queue.hpp:113
Basic event-based vision structures based on OpenCV components.