OpenEV
Extending OpenCV to event-based vision
Loading...
Searching...
No Matches
example-davis.cpp

This is an example of how to use the Davis class.

#include <iostream>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
inline void show1(ev::EventHistogram3b &evhist) {
cv::resize(evhist.render(), resized, ev::Size(), 2, 2, cv::INTER_NEAREST);
cv::imshow("example-davis: dvs", resized);
cv::waitKey(1);
}
inline void show2(cv::Mat &img) {
cv::Mat resized;
cv::resize(img, resized, ev::Size(), 2, 2, cv::INTER_NEAREST);
cv::imshow("example-davis: aps", resized);
cv::waitKey(1);
}
int main(int argc, const char *argv[]) {
ev::Davis camera;
camera.setRoi(cv::Rect(20, 20, 250, 200));
std::cout << camera.getRoi() << std::endl;
camera.enableDvs(true);
camera.enableAps(true);
camera.enableImu(false);
camera.setDvsTimeInterval(33333.333); // 30Hz
camera.setDvsEventsPerPacket(0); // No limit
ev::Vector events;
ev::Imu imu;
camera.start();
while(1) {
events.clear();
evhist.clear();
camera.getData(events, img, imu);
std::cout << events.size() << ", " << !img.empty() << ", " << !imu.empty() << '\n';
if(!events.empty()) {
evhist.insert(events);
show1(evhist);
}
if(!img.empty()) {
show2(img);
}
if(!imu.empty()) {
std::cout << imu << std::endl;
}
}
return 0;
}
cv::Rect getRoi() const
Get current ROI.
Definition abstract-camera.cpp:20
bool setRoi(const cv::Rect &roi)
Set current ROI. Events outside the ROI are not considered. Images are cropped according to the ROI.
Definition abstract-camera.cpp:28
cv::Size getSensorSize() const
Get device sensor size.
Definition abstract-camera.cpp:15
This class extends AbstractCamera_ to operate with DAVIS event cameras. DAVIS cameras offer events (D...
Definition davis.hpp:19
void enableDvs(bool state)
Enable DVS.
Definition davis.cpp:81
void enableAps(bool state)
Enable APS.
Definition davis.cpp:95
void setDvsEventsPerPacket(uint32_t n)
Set DVS maximum number of events per transmission.
Definition davis.cpp:90
void setDvsTimeInterval(uint32_t usec)
Set DVS maximum time interval between subsequent transmissions.
Definition davis.cpp:85
bool getData(Vector &events) override
Get DVS data.
Definition davis.cpp:112
void enableImu(bool state)
Enable IMU.
Definition davis.cpp:107
void start(void) override
Starts device.
Definition davis.cpp:53
This class extends ev::EventImage_<T> for event 2D histograms.
Definition event-histogram.hpp:55
cv::Mat & render()
Render event histogram matrix.
This class extends cv::Mat to include timestamp.
Definition abstract-camera.hpp:53
This class extends std::vector to implement event vectors. For more information, please refer here.
Definition vector.hpp:36
Include all the OpenEV modules.
This struct is used to store IMU data from a DAVIS event camera.
Definition abstract-camera.hpp:91
Size2 Size
Definition types.hpp:340