DVS 文件读取器类
更多...
#include <DvsFileReader.h>
◆ DvsFileReader()
dvsense::DvsFileReader::DvsFileReader |
( |
| ) |
|
|
inline |
◆ ~DvsFileReader()
virtual dvsense::DvsFileReader::~DvsFileReader |
( |
| ) |
|
|
inlinevirtual |
◆ createFileReader()
static std::unique_ptr<DvsFileReader> dvsense::DvsFileReader::createFileReader |
( |
std::string |
filepath | ) |
|
|
static |
创建一个文件读取器对象
- 参数
-
- 返回
- std::unique_ptr<DvsFileReader> 创建的文件读取器的唯一指针
◆ loadFile()
virtual bool dvsense::DvsFileReader::loadFile |
( |
| ) |
|
|
pure virtual |
加载RAW文件以处理事件。
- 参数
-
- 返回
- 如果文件加载成功,则返回true,否则返回false。
- 注解
- 根据文件大小,此函数可能需要较长的时间来完成。
◆ getStartTimeStamp()
virtual bool dvsense::DvsFileReader::getStartTimeStamp |
( |
TimeStamp & |
start_timestamp | ) |
|
|
pure virtual |
获取文件中时间戳的起始位置。
- 参数
-
start_timestamp | 时间戳起始位置的引用。 |
- 返回
- 如果文件中有时间戳信息,则返回true。
-
如果文件中没有时间戳信息,则返回false。
◆ getEndTimeStamp()
virtual bool dvsense::DvsFileReader::getEndTimeStamp |
( |
TimeStamp & |
end_timestamp | ) |
|
|
pure virtual |
获取文件中时间戳的结束位置。
- 参数
-
- 返回
- 如果文件中有时间戳信息,则返回true。
-
如果文件中没有时间戳信息,则返回false。
◆ getMaxEvents()
virtual bool dvsense::DvsFileReader::getMaxEvents |
( |
uint64_t & |
num | ) |
|
|
pure virtual |
获取可用的最大事件数量。
- 参数
-
- 返回
- 如果成功获取最大事件数量,则返回 true。
-
如果无法确定事件数量,则返回 false。
◆ reachedEndOfEvents()
virtual bool dvsense::DvsFileReader::reachedEndOfEvents |
( |
| ) |
|
|
pure virtual |
检查是否已经到达事件数据的末尾。
- 返回
- 如果所有事件都已读取且没有更多数据,则返回 true。
-
如果仍然有未读取的事件,则返回 false。
◆ seekTime()
virtual bool dvsense::DvsFileReader::seekTime |
( |
TimeStamp |
t | ) |
|
|
pure virtual |
寻找文件中的特定时间戳。
此函数将文件当前位置移动到指定时间戳的事件。如果提供的时间戳超出范围,则当前位置将设置为文件开始或结束位置。
- 参数
-
- 返回
- 如果寻址操作成功,则返回true,如果未找到时间戳,则返回false。
◆ seekNEvents()
virtual bool dvsense::DvsFileReader::seekNEvents |
( |
uint64_t |
n_event | ) |
|
|
pure virtual |
寻找文件中的第n个事件。
此函数将文件当前位置移动到指定索引的事件。如果提供的事件索引超出范围,则当前位置将设置为文件开始或结束位置。
- 参数
-
- 返回
- 如果寻址操作成功,则返回true,如果未找到事件,则返回false。
◆ getCurrentPosTimeStamp()
virtual TimeStamp dvsense::DvsFileReader::getCurrentPosTimeStamp |
( |
| ) |
|
|
pure virtual |
获取当前文件解码位置的时间戳。
- 返回
- TimeStamp
- 注解
- 当以固定数量的事件或固定时间间隔读取时, 当前文件位置的时间戳可能与返回的事件的时间戳不对应。
◆ getCurrentPosEventNum()
virtual uint64_t dvsense::DvsFileReader::getCurrentPosEventNum |
( |
| ) |
|
|
pure virtual |
获取从文件开头到当前文件解码位置的事件数量。
- 返回
- 事件数量
◆ getNEvents()
virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNEvents |
( |
uint64_t |
n | ) |
|
|
pure virtual |
从当前位置检索指定数量的事件。
- 参数
-
- 返回
- 包含检索到的事件的 Event2DVector 的共享指针。
- 警告
- 此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。
◆ getNEventsGivenStartTimeStamp()
virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNEventsGivenStartTimeStamp |
( |
TimeStamp |
start, |
|
|
uint64_t |
n |
|
) |
| |
|
pure virtual |
从给定的时间戳开始检索指定数量的事件。
- 参数
-
start | 开始读取的时间戳。 |
n | 要检索的事件数量。 |
- 返回
- 包含检索到的事件的 Event2DVector 的共享指针。
- 警告
- 此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。
◆ getNEventsGivenStartEvent()
virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNEventsGivenStartEvent |
( |
uint64_t |
event_num, |
|
|
uint64_t |
n |
|
) |
| |
|
pure virtual |
从指定位置检索特定数量的事件。
- 参数
-
event_num | 开始读取的事件位置。 |
n | 要检索事件的数量。 |
- 返回
- 包含检索到的事件的 Event2DVector 的共享指针。
- 警告
- 此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。
◆ getNTimeEvents()
virtual std::shared_ptr<std::vector<Event2D> > dvsense::DvsFileReader::getNTimeEvents |
( |
TimeStamp |
interval | ) |
|
|
pure virtual |
从当前位置检索特定时间间隔内的事件。
- 参数
-
- 返回
- 包含检索到的事件的 Event2DVector 的共享指针。
- 警告
- 此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。
◆ getNTimeEventsGivenStartTimeStamp()
virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNTimeEventsGivenStartTimeStamp |
( |
TimeStamp |
start, |
|
|
TimeStamp |
interval |
|
) |
| |
|
pure virtual |
从当前位置检索特定时间间隔内的事件。
- 参数
-
start | 开始读取的时间戳。 |
interval | 要检索事件的时间间隔。 |
- 返回
- 包含检索到的事件的 Event2DVector 的共享指针。
- 警告
- 此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。
◆ getNTimeEventsGivenStartEvent()
virtual std::shared_ptr<std::vector<Event2D> > dvsense::DvsFileReader::getNTimeEventsGivenStartEvent |
( |
uint64_t |
event_num, |
|
|
TimeStamp |
interval |
|
) |
| |
|
pure virtual |
从第 event_num 个事件开始检索特定时间间隔内的事件。
- 参数
-
event_num | 开始读取的事件位置。 |
interval | 要检索事件的时间间隔。 |
- 返回
- 包含检索到的事件的 Event2DVector 的共享指针。
- 警告
- 此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。
◆ extractEventData()
virtual bool dvsense::DvsFileReader::extractEventData |
( |
TimeStamp |
start, |
|
|
TimeStamp |
end, |
|
|
std::string |
out_file_path |
|
) |
| |
|
pure virtual |
提取指定时间范围内的事件数据,并将结果保存到指定的输出文件中。
- 参数
-
start | 起始时间戳,表示事件提取的开始时间。 |
end | 结束时间戳,表示事件提取的结束时间。 |
out_file_path | 输出文件的路径,提取的事件数据将被写入此文件 |
- 返回
- bool 文件输出成功返回true, 反之则返回false
- 警告
- out_file_path 需要输出完整的文件路径,且文件目录需要存在。
- 注解
- 需要注意的是,保存的文件数据并不是准确的起始时间戳,与实际提取的事件数据时间戳存在10us左右的偏差。
◆ exportEventDataToVideo()
virtual bool dvsense::DvsFileReader::exportEventDataToVideo |
( |
TimeStamp |
start, |
|
|
TimeStamp |
end, |
|
|
std::string |
out_file_path |
|
) |
| |
|
pure virtual |
◆ getWidth()
virtual uint16_t dvsense::DvsFileReader::getWidth |
( |
| ) |
const |
|
pure virtual |
获取用于捕获事件的传感器的宽度
- 返回
- uint16_t
◆ getHeight()
virtual uint16_t dvsense::DvsFileReader::getHeight |
( |
| ) |
const |
|
pure virtual |
获取用于捕获事件的传感器的高度
- 返回
- uint16_t