MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
VisionOp.hpp File Reference

Declarative description of a Kinesis::Vision processing sequence. More...

+ Include dependency graph for VisionOp.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MayaFlux::Kinesis::Vision::VisionSequence::Builder
 Fluent builder for VisionSequence. More...
 
struct  MayaFlux::Kinesis::Vision::CannyParams
 
struct  MayaFlux::Kinesis::Vision::ChannelBand
 Inclusive accepted range of one channel. More...
 
struct  MayaFlux::Kinesis::Vision::ConfineParams
 Parameters for Confine. More...
 
struct  MayaFlux::Kinesis::Vision::ConnectedComponentsParams
 Connected-component label export and color output. More...
 
struct  MayaFlux::Kinesis::Vision::ExtractPeaksParams
 Peak extraction parameters. More...
 
struct  MayaFlux::Kinesis::Vision::FilterSeparableParams
 
struct  MayaFlux::Kinesis::Vision::FindContoursParams
 Contour filtering, trace limits, and output selection. More...
 
struct  MayaFlux::Kinesis::Vision::GaussianBlurParams
 
struct  MayaFlux::Kinesis::Vision::HarrisParams
 Harris response parameters. More...
 
struct  MayaFlux::Kinesis::Vision::MorphParams
 
struct  MayaFlux::Kinesis::Vision::NormalizeRangeParams
 
struct  MayaFlux::Kinesis::Vision::OpticalFlowDenseParams
 Parameters for OpticalFlowDense. More...
 
struct  MayaFlux::Kinesis::Vision::OtsuParams
 Otsu threshold. More...
 
struct  MayaFlux::Kinesis::Vision::ThresholdAdaptiveParams
 Adaptive threshold. More...
 
struct  MayaFlux::Kinesis::Vision::ThresholdParams
 Fixed threshold. More...
 
struct  MayaFlux::Kinesis::Vision::TrackKeypointsParams
 Parameters for TrackKeypoints. More...
 
struct  MayaFlux::Kinesis::Vision::VisionSequence
 Ordered VisionSteps and the backend chosen to execute them. More...
 
struct  MayaFlux::Kinesis::Vision::VisionStep
 One step in a VisionSequence: an op and its parameters. More...
 

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 
namespace  MayaFlux::Kinesis::Vision
 

Typedefs

using MayaFlux::Kinesis::Vision::VisionParams = std::variant< std::monostate, ThresholdParams, ThresholdAdaptiveParams, OtsuParams, NormalizeRangeParams, GaussianBlurParams, FilterSeparableParams, CannyParams, MorphParams, HarrisParams, ExtractPeaksParams, TrackKeypointsParams, ConnectedComponentsParams, FindContoursParams, OpticalFlowDenseParams, ConfineParams >
 Parameter variant covering all ops that carry parameters.
 

Enumerations

enum class  MayaFlux::Kinesis::Vision::ChannelMask : uint8_t { MayaFlux::Kinesis::Vision::NONE = 0U , MayaFlux::Kinesis::Vision::Ch0 = 1U << 0U , MayaFlux::Kinesis::Vision::Ch1 = 1U << 1U , MayaFlux::Kinesis::Vision::Ch2 = 1U << 2U }
 Selects channels of the current image for a multichannel threshold. More...
 
enum class  MayaFlux::Kinesis::Vision::VisionBackend : uint8_t { MayaFlux::Kinesis::Vision::GPU , MayaFlux::Kinesis::Vision::CPU }
 Selects where a VisionSequence executes. More...
 
enum class  MayaFlux::Kinesis::Vision::VisionOp : uint8_t {
  MayaFlux::Kinesis::Vision::RgbaToGray , MayaFlux::Kinesis::Vision::RgbaToHsv , MayaFlux::Kinesis::Vision::GrayToRgba , MayaFlux::Kinesis::Vision::Downsample2x ,
  MayaFlux::Kinesis::Vision::Threshold , MayaFlux::Kinesis::Vision::ThresholdAdaptive , MayaFlux::Kinesis::Vision::ThresholdOtsu , MayaFlux::Kinesis::Vision::NormalizeInplace ,
  MayaFlux::Kinesis::Vision::NormalizeRange , MayaFlux::Kinesis::Vision::GaussianBlur , MayaFlux::Kinesis::Vision::FilterSeparable , MayaFlux::Kinesis::Vision::Sobel ,
  MayaFlux::Kinesis::Vision::Scharr , MayaFlux::Kinesis::Vision::Canny , MayaFlux::Kinesis::Vision::Erode , MayaFlux::Kinesis::Vision::Dilate ,
  MayaFlux::Kinesis::Vision::Open , MayaFlux::Kinesis::Vision::Close , MayaFlux::Kinesis::Vision::MorphGradient , MayaFlux::Kinesis::Vision::ConnectedComponents ,
  MayaFlux::Kinesis::Vision::FindContours , MayaFlux::Kinesis::Vision::HarrisResponse , MayaFlux::Kinesis::Vision::ExtractPeaks , MayaFlux::Kinesis::Vision::TrackKeypoints ,
  MayaFlux::Kinesis::Vision::Snapshot , MayaFlux::Kinesis::Vision::OpticalFlowDense , MayaFlux::Kinesis::Vision::Confine
}
 Named operations available in a VisionSequence. More...
 

Functions

void MayaFlux::Kinesis::Vision::hash_combine (size_t &seed, size_t value)
 Combine a hash into an existing seed, FNV-style.
 
void MayaFlux::Kinesis::Vision::hash_region (size_t &seed, const std::optional< BoundingBox > &region)
 Combine an optional region into a hash: absence and presence hash differently, presence by its four bounds.
 
size_t MayaFlux::Kinesis::Vision::hash_vision_step (VisionOp op, const VisionParams &params)
 Hash a VisionStep's op and parameters together.
 
bool MayaFlux::Kinesis::Vision::track_follows_peaks (const VisionSequence &seq)
 True when an ExtractPeaks step is immediately followed by TrackKeypoints.
 
bool MayaFlux::Kinesis::Vision::tracks_keypoints (const VisionSequence &seq)
 True when any step tracks keypoints.
 

Detailed Description

Declarative description of a Kinesis::Vision processing sequence.

VisionStep names one operation and carries the parameters needed to invoke it. VisionSequence is an ordered list of steps. Both are pure value types with no MayaFlux dependencies.

Processors (VisionDataProcessor, VisionBufferProcessor) accept a VisionSequence at construction and execute it each cycle without knowing which specific algorithms are involved. No per-algorithm processor subclass is needed.

Definition in file VisionOp.hpp.