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