This is an example of how to use the TimeSurface_<T> class.
#include <memory>
#include <opencv2/core.hpp>
#include <opencv2/core/mat.hpp>
#include <opencv2/core/mat.inl.hpp>
#include <opencv2/core/matx.hpp>
#include <opencv2/core/traits.hpp>
#include <opencv2/core/utility.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/viz/types.hpp>
#include <random>
#include <string>
cv::resize(ts.
render(), resized,
ev::Size(500, 500), 0, 0, cv::INTER_NEAREST);
cv::imshow("example-event-image", resized);
cv::waitKey(5);
}
int main(int , const char * []) {
timesurface.setColors(cv::viz::Color::bluberry(), cv::viz::Color::cherry(), cv::viz::Color::black());
int row = 0;
int col = 0;
int direction = 0;
int offset = 0;
double t = 0;
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> time_dist(0, 9);
std::uniform_int_distribution<> polarity_dist(0, 1);
while(offset < 0.55 * timesurface.cols) {
t += time_dist(gen);
switch(direction) {
case 0:
col++;
if(col >= timesurface.cols - 1 - offset) {
direction++;
}
break;
case 1:
row++;
if(row >= timesurface.rows - 1 - offset) {
direction++;
}
break;
case 2:
col--;
if(col <= offset) {
direction++;
offset++;
}
break;
case 3:
row--;
if(row <= offset) {
direction = 0;
}
default:
break;
}
show(timesurface);
}
return 0;
}
cv::Mat & render(const Kernel kernel=Kernel::NONE, const double tau=0)
Render timesurface matrix.
TimeSurface_< cv::Vec3b > TimeSurface3b
Definition time-surface.hpp:90
Basic event-based vision structures based on OpenCV components.
constexpr bool POSITIVE
Definition types.hpp:27
Size2 Size
Definition types.hpp:342
constexpr bool NEGATIVE
Definition types.hpp:28
Eventi Event
Definition types.hpp:244