OpenEV
Extending OpenCV to event-based vision
Toggle main menu visibility
Loading...
Searching...
No Matches
deque.hpp
Go to the documentation of this file.
1
6
#ifndef OPENEV_CONTAINERS_DEQUE_HPP
7
#define OPENEV_CONTAINERS_DEQUE_HPP
8
9
#include "
openev/core/types.hpp
"
10
#include <deque>
11
#include <numeric>
12
#include <opencv2/core/types.hpp>
13
14
namespace
ev {
15
constexpr
bool
USING_DEQUE_HPP =
true
;
16
22
template
<
typename
T>
23
class
Deque_
:
public
std::deque<Event_<T>> {
24
using
std::deque<
Event_<T>
>::deque;
25
using
ResultType = TimeType;
26
27
public
:
32
[[nodiscard]]
inline
ResultType
duration
()
const
{
33
return
std::deque<ev::Event_<T>>::back().t - std::deque<ev::Event_<T>>::front().t;
34
}
35
40
[[nodiscard]]
inline
ResultType
rate
()
const
{
41
return
std::deque<ev::Event_<T>>::size() /
duration
();
42
}
43
48
[[nodiscard]]
inline
Event_<ResultType>
mean
()
const
{
49
const
ResultType x = std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.x; }) / std::deque<
ev::Event_<T>
>::size();
50
const
ResultType y = std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.y; }) / std::deque<
ev::Event_<T>
>::size();
51
const
ResultType t = std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.
t
; }) / std::deque<
ev::Event_<T>
>::size();
52
const
ResultType p = std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.
p
; }) / std::deque<
ev::Event_<T>
>::size();
53
return
{x, y, t, p > 0.5};
54
}
55
60
[[nodiscard]]
inline
cv::Point_<ResultType>
meanPoint
()
const
{
61
const
ResultType x = std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.x; }) / std::deque<
ev::Event_<T>
>::size();
62
const
ResultType y = std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.y; }) / std::deque<
ev::Event_<T>
>::size();
63
return
{x, y};
64
}
65
70
[[nodiscard]]
inline
ResultType
meanTime
()
const
{
71
return
std::accumulate(std::deque<
ev::Event_<T>
>::begin(), std::deque<
ev::Event_<T>
>::end(), 0.0, [](ResultType sum,
const
Event_<T>
&e) {
return
sum + e.
t
; }) / std::deque<
ev::Event_<T>
>::size();
72
}
73
78
[[nodiscard]]
inline
ResultType
midTime
()
const
{
79
return
0.5 * (std::deque<ev::Event_<T>>::front().t + std::deque<ev::Event_<T>>::back().t);
80
}
81
};
82
using
Dequei
=
Deque_<int>
;
83
using
Dequel
=
Deque_<long>
;
84
using
Dequef
=
Deque_<float>
;
85
using
Dequed
=
Deque_<double>
;
86
using
Deque
=
Dequei
;
87
}
// namespace ev
88
89
#endif
// OPENEV_CONTAINERS_DEQUE_HPP
ev::Deque_
This class extends std::deque to implement event deques. For more information, please refer here.
Definition
deque.hpp:23
ev::Deque_::midTime
ResultType midTime() const
Calculate the midpoint time between the oldest and the newest event.
Definition
deque.hpp:78
ev::Deque_::meanPoint
cv::Point_< ResultType > meanPoint() const
Compute the mean x,y point of the events.
Definition
deque.hpp:60
ev::Deque_::mean
Event_< ResultType > mean() const
Compute the mean of the events.
Definition
deque.hpp:48
ev::Deque_::duration
ResultType duration() const
Time difference between the last and the first event.
Definition
deque.hpp:32
ev::Deque_::meanTime
ResultType meanTime() const
Compute the mean time of the events.
Definition
deque.hpp:70
ev::Deque_::rate
ResultType rate() const
Compute event rate as the ratio between the number of events and the time difference between the last...
Definition
deque.hpp:40
ev::Event_
This class extends cv::Point_<T> for event data. For more information, please refer here.
Definition
types.hpp:77
ev::Event_::p
PolarityType p
Definition
types.hpp:80
ev::Event_::t
TimeType t
Definition
types.hpp:79
ev::Dequed
Deque_< double > Dequed
Definition
deque.hpp:85
ev::Dequei
Deque_< int > Dequei
Definition
deque.hpp:82
ev::Dequef
Deque_< float > Dequef
Definition
deque.hpp:84
ev::Deque
Dequei Deque
Definition
deque.hpp:86
ev::Dequel
Deque_< long > Dequel
Definition
deque.hpp:83
types.hpp
Basic event-based vision structures based on OpenCV components.
modules
containers
include
openev
containers
deque.hpp
Generated by
1.17.0