OpenEV
Extending OpenCV to event-based vision
Loading...
Searching...
No Matches
time-surface.hpp
Go to the documentation of this file.
1
6#ifndef OPENEV_REPRESENTATIONS_TIME_SURFACE_HPP
7#define OPENEV_REPRESENTATIONS_TIME_SURFACE_HPP
8
12#include <opencv2/core/hal/interface.h>
13#include <opencv2/core/matx.hpp>
14#include <opencv2/core/utils/logger.hpp>
15#include <utility>
16
17namespace cv {
19class Mat;
21} // namespace cv
22
23namespace ev {
24[[maybe_unused]] constexpr bool USING_TIME_SURFACE_HPP = true;
25
27template <typename T>
28class Event_;
30
53enum class Kernel { NONE,
54 LINEAR,
55 EXPONENTIAL };
56template <typename T, const RepresentationOptions Options = RepresentationOptions::NONE, typename E = int>
57class TimeSurface_ : public EventImage_<T, Options, E> {
58public:
59 template <typename... Args>
60 explicit TimeSurface_(Args &&...args) : EventImage_<T, Options, E>(std::forward<Args>(args)...) {
62 }
63
64 Mat::Time time{this->size()};
65 Mat::Polarity polarity{this->size()};
66
74 cv::Mat &render(const Kernel kernel = Kernel::NONE, const double tau = 0);
75
76private:
77 void clear_() override;
78 void clear_(const cv::Mat &background) override;
79 bool insert_(const Event_<E> &e) override;
80};
96} // namespace ev
97
99#include "openev/representations/time-surface.tpp"
101
102#endif // OPENEV_REPRESENTATIONS_TIME_SURFACE_HPP
Event abstract representation.
This class extends cv::Point_<T> for event data. For more information, please refer here.
Definition types.hpp:86
Spatial map storing the polarity of the most recent event at each pixel.
Definition matrices.hpp:288
Spatial map storing the timestamp of the most recent event at each pixel.
Definition matrices.hpp:240
Definition time-surface.hpp:57
cv::Mat & render(const Kernel kernel=Kernel::NONE, const double tau=0)
Render timesurface matrix.
Mat::Time time
Definition time-surface.hpp:64
Mat::Polarity polarity
Definition time-surface.hpp:65
Event images.
Event-based matrix representations for accumulating events into spatial maps.
TimeSurface_< int > TimeSurface1i
Definition time-surface.hpp:87
TimeSurface_< float > TimeSurface1f
Definition time-surface.hpp:89
TimeSurface_< cv::Vec3w > TimeSurface3w
Definition time-surface.hpp:86
TimeSurface_< cv::Vec3f > TimeSurface3f
Definition time-surface.hpp:90
TimeSurface_< cv::Vec3s > TimeSurface3s
Definition time-surface.hpp:84
TimeSurface1b TimeSurface1
Definition time-surface.hpp:93
TimeSurface_< ushort > TimeSurface1w
Definition time-surface.hpp:85
TimeSurface_< cv::Vec3i > TimeSurface3i
Definition time-surface.hpp:88
TimeSurface3b TimeSurface3
Definition time-surface.hpp:94
TimeSurface_< uchar > TimeSurface1b
Definition time-surface.hpp:81
Kernel
This class extends ev::EventImage_<T> for time surfaces.
Definition time-surface.hpp:53
TimeSurface_< cv::Vec3d > TimeSurface3d
Definition time-surface.hpp:92
TimeSurface_< double > TimeSurface1d
Definition time-surface.hpp:91
TimeSurface_< cv::Vec3b > TimeSurface3b
Definition time-surface.hpp:82
TimeSurface_< short > TimeSurface1s
Definition time-surface.hpp:83
TimeSurface1 TimeSurface
Definition time-surface.hpp:95