Vision module

MotionDetector

MotionDetector

#include </home/runner/work/icey/icey/src/vision/include/icy/vision/motiondetector.h>

Public Attributes

ReturnNameDescription
Signal< void(const VisionEvent &)>Event

Event

Signal< void(const VisionEvent &)> Event

Public Methods

ReturnNameDescription
MotionDetector explicit
voidsetConfig
MotionDetectorConfigconfig const
MotionDetectorStatsstats const
voidreset
voidprocess

MotionDetector

explicit

explicit MotionDetector(MotionDetectorConfig config)

setConfig

void setConfig(MotionDetectorConfig config)

config

const

MotionDetectorConfig config() const

stats

const

MotionDetectorStats stats() const

reset

void reset()

process

void process(const av::PlanarVideoPacket & packet)

Private Attributes

ReturnNameDescription
MotionDetectorConfig_config
uint64_t_sequence
uint64_t_seen
uint64_t_emitted
uint32_t_warmedFrames
int_width
int_height
int64_t_lastEventTimeUsec
float_lastScore
std::vector< uint8_t >_previousGrid
std::vector< uint8_t >_currentGrid

_config

MotionDetectorConfig _config

_sequence

uint64_t _sequence = 0

_seen

uint64_t _seen = 0

_emitted

uint64_t _emitted = 0

_warmedFrames

uint32_t _warmedFrames = 0

_width

int _width = 0

_height

int _height = 0

_lastEventTimeUsec

int64_t _lastEventTimeUsec = 0

_lastScore

float _lastScore = 0.0f

_previousGrid

std::vector< uint8_t > _previousGrid

_currentGrid

std::vector< uint8_t > _currentGrid

Private Methods

ReturnNameDescription
voidsampleLumaGrid const
floatdiffScore const
voidemitEvent

sampleLumaGrid

const

void sampleLumaGrid(const av::PlanarVideoPacket & packet, std::vector< uint8_t > & out) const

diffScore

const

float diffScore(const std::vector< uint8_t > & current) const

emitEvent

void emitEvent(const av::PlanarVideoPacket & packet, float score)

Private Static Methods

ReturnNameDescription
MotionDetectorConfigsanitize static

sanitize

static

static MotionDetectorConfig sanitize(MotionDetectorConfig config)